data driven testing framework code example

Example 1: how do you implement data driven testing in framework

HOW DO YOU IMPLEMENT DATA DRIVEN TESTING IN YOUR FRAMEWORK?
	
	TESTNG:
	1. @DataProvider annotation
	2. Excel file with the help of Apache POI
	3. JSON or CSV file for API testing
	4. Data which comes from Database and stores in collections

	To use the DataProvider feature in the test cases, 
    you have to declare a method annotated by @DataProvider
    and then use the said method in the test method
    using the ‘dataProvider‘ attribute
    in the @Test annotation.

	CUCUMBER / JUNIT:
	1. Scenario outline
	2. Excel file with the help of Apache POI
	3. JSON or CSV file for API testing
	4. Data which comes from Database and stores in collections
	5. @ParameterizedTest --> If you use JUnit-5
		
	
	Examples for ParameterizedTest:

	@ParameterizedTest
    @ValueSource(ints = {1,2,3,4})  ==>
    it can be ints/strings/booleans/chars (those are keywords)
    public void validateRegionNameTest1(int id) {
     xxxxx
    }

    @ParameterizedTest
    @CsvSource({
            "1, Europe",
            "2, Americas",
            "3, Asia",
            "4, Middle East and Africa"})
    public void validateRegionNameTest2(int id, String name){ 
    xxxx
    }

    @ParameterizedTest
    @CsvFileSource(resources = "/regions.csv")

    @ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
    @MethodSource("sumProvider")
  
    @ParameterizedTest(name = "{index} => pet=''{0}''")
    @EnumSource(value = Pet.class, names = {"CAT"})

    @ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
    @ArgumentsSource(CustomArgumentProvider.class)

Example 2: data driven testing framework

HOW DO YOU IMPLEMENT DATA DRIVEN TESTING IN YOUR FRAMEWORK?
	
	TESTNG:
	1. @DataProvider annotation
	2. Excel file with the help of Apache POI
	3. JSON or CSV file for API testing
	4. Data which comes from Database and stores in collections

	To use the DataProvider feature in the 
    test cases, you have to declare a method
    annotated by @DataProvider and then use 
    the said method in the test method using
    the ‘dataProvider‘ attribute in the @Test annotation.

	CUCUMBER / JUNIT:
	1. Scenario outline
	2. Excel file with the help of Apache POI
	3. JSON or CSV file for API testing
	4. Data which comes from Database and stores in collections
	5. @ParameterizedTest --> If you use JUnit-5
		
	
	Examples for ParameterizedTest:

	@ParameterizedTest
    @ValueSource(ints = {1,2,3,4})  ==>
    it can be ints/strings/booleans/chars (those are keywords)
    public void validateRegionNameTest1(int id) {
     xxxxx
    }

    @ParameterizedTest
    @CsvSource({
            "1, Europe",
            "2, Americas",
            "3, Asia",
            "4, Middle East and Africa"})
    public void validateRegionNameTest2(int id, String name){ 
    xxxx
    }

    @ParameterizedTest
    @CsvFileSource(resources = "/regions.csv")

    @ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
    @MethodSource("sumProvider")
  
    @ParameterizedTest(name = "{index} => pet=''{0}''")
    @EnumSource(value = Pet.class, names = {"CAT"})

    @ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
    @ArgumentsSource(CustomArgumentProvider.class)

Example 3: data driven testing

Whenever a functionality or a module in an app
requires testing with multiple sets of data (Parametrization),
Multiple inputs then we need to perform data driven testing and
automation.
These scenarios are one of the things That must be automated.
I would do it by seperating Test data from code and stored into external
sources like
Cucumber Examples table, Excel files, CSV files, Database.
Data driven testing has lots of benefits like
More organized, Data centralized, and so on