Careeroza
Real World Example
Insurance Premium Calculator
An insurance client project tests a premium calculator with 200 combinations of age, sum insured, city tier and smoker status, kept in an Excel sheet by the business team. One Selenium test plus a data provider covers them all:
@Test(dataProvider = "premiumData", dataProviderClass = PremiumData.class)
public void premiumIsCorrect(String age, String sumInsured, String city, String smoker, String expectedPremium) {
driver.get(config.baseUrl() + "/health-insurance/quote");
driver.findElement(By.id("age")).sendKeys(age);
new Select(driver.findElement(By.id("sum-insured"))).selectByVisibleText(sumInsured);
new Select(driver.findElement(By.id("city"))).selectByVisibleText(city);
if (smoker.equals("Yes")) driver.findElement(By.id("smoker-yes")).click();
driver.findElement(By.id("get-quote")).click();
String premium = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("premium"))).getText();
Assert.assertEquals(premium, expectedPremium, "premium for age " + age + ", " + sumInsured + ", " + city);
}Example
Output:
mvn test -Dtest=PremiumTestExample output
Tests run: 200, Failures: 1, Skips: 0
FAILED: premiumIsCorrect("61", "₹10 Lakh", "Tier 1", "Yes", "₹48,312")
java.lang.AssertionError: premium for age 61, ₹10 Lakh, Tier 1 expected [₹48,312] but found [₹46,980]Takeaway
The failing row pointed straight to a bug in the senior-citizen smoker loading. Without data-driven tests, nobody would have tried that exact combination by hand.