JUnit and TestNG are very popular unit testing frameworks for java software developers and we can use them in our webdriver test execution for any software web application.
Similarities Between JUnit and TestNG
- We can create test suite in JUnit and TestNG both frameworks.
- Timeout Test Is possible very easily in both the frameworks.
- We can ignore specific test case execution of software web application from suite in both the frameworks.
- It is possible to create expected exception test for software web application in both the frameworks.
- Annotations – Few annotations are similar in both frameworks suite like @Test, @BeforeClass, @AfterClass. JUnit’s Annotations @Before and @After are similar to TestNG’s @BeforeMethod and @AfterMethod annotations.
Difference Between JUnit and TestNG
- In TestNG, Parameterized test configuration is very easy while It is very hard to configure Parameterized test in JUnit.
- TestNG support group test but it is not supported in JUnit.
- TestNG has a feature to configure dependency test. Dependency test configuration for software web application is not possible in JUnit.
- TestNG support @BeforeTest, @AfterTest, @BeforeSuite, @AfterSuite, @BeforeGroups, @AfterGroups which are not supported in JUnit.
- Test prioritization, Parallel testing is possible in TestNG. It is not supported by JUnit.
|run before all tests in this suite have run||—||@BeforeSuite|
|run after all tests in this suite have run||—||@AfterSuite|
|run before the test||—||@BeforeTest|
|run after the test||—||@AfterTest|
|run before the first test method that belongs to any of these groups is invoked||—||@BeforeGroups|
|run after the last test method that belongs to any of these groups is invoked||—||@AfterGroups|
|run before the first test method in the current class is invoked||@BeforeClass||@BeforeClass|
|run after all the test methods in the current class have been run||@AfterClass||@AfterClass|
|run before each test method||@Before||@BeforeMethod|
|run after each test method||@After||@AfterMethod|
|expected exception||@Test(expected = ArithmeticException.class)||@Test(expectedExceptions = ArithmeticException.class)|
|timeout||@Test(timeout = 1000)||@Test(timeout = 1000)|