From 1bf70b8f088ca90d644ca5d9e900648185718cf9 Mon Sep 17 00:00:00 2001 From: dhruba619 Date: Sun, 5 Feb 2017 00:46:21 +0530 Subject: [PATCH] BAEL-183 JUnit vs TestNG --- .../test/comparison/DependentTests.java | 46 ++++++++ .../comparison/MyParameterisedUnitTest.java | 50 +++++++++ .../comparison/MyParameterisedUnitTestNg.java | 80 ++++++++++++++ .../com/baeldung/test/comparison/MyTest1.java | 12 +++ .../com/baeldung/test/comparison/MyTest2.java | 10 ++ .../com/baeldung/test/comparison/MyTest5.java | 13 +++ .../test/comparison/RegistrationTest.java | 11 ++ .../baeldung/test/comparison/SignInTest.java | 12 +++ .../test/comparison/SummationServiceTest.java | 60 +++++++++++ .../SummationServiceTestTestNg.java | 101 ++++++++++++++++++ .../baeldung/test/comparison/TimeOutTest.java | 10 ++ .../src/test/resources/parameterised_test.xml | 10 ++ core-java/src/test/resources/test_group.xml | 13 +++ core-java/src/test/resources/test_suite.xml | 9 ++ 14 files changed, 437 insertions(+) create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/DependentTests.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTest.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTestNg.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/MyTest1.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/MyTest2.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/MyTest5.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/RegistrationTest.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/SignInTest.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/SummationServiceTest.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/SummationServiceTestTestNg.java create mode 100644 core-java/src/test/java/com/baeldung/test/comparison/TimeOutTest.java create mode 100644 core-java/src/test/resources/parameterised_test.xml create mode 100644 core-java/src/test/resources/test_group.xml create mode 100644 core-java/src/test/resources/test_suite.xml diff --git a/core-java/src/test/java/com/baeldung/test/comparison/DependentTests.java b/core-java/src/test/java/com/baeldung/test/comparison/DependentTests.java new file mode 100644 index 0000000000..6b0394a368 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/test/comparison/DependentTests.java @@ -0,0 +1,46 @@ +package com.baeldung.test.comparison; + +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class DependentTests { + + private EmailValidator emailValidator; + private LoginValidator loginValidator; + private String validEmail = "abc@qwe.com"; + + @BeforeClass + public void setup(){ + emailValidator = new EmailValidator(); + loginValidator = new LoginValidator(); + } + + @Test + public void validEmailTest() { + boolean valid = emailValidator.validate(validEmail); + Assert.assertEquals(valid, true); + } + + @Test(dependsOnMethods={"validEmailTest"}) + public void validateLogin() { + boolean valid = loginValidator.validate(); + Assert.assertEquals(valid, true); + } +} + +class EmailValidator{ + + public boolean validate(String validEmail) { + return true; + } + +} + +class LoginValidator{ + + public boolean validate() { + return true; + } + +} diff --git a/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTest.java b/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTest.java new file mode 100644 index 0000000000..9e63956556 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTest.java @@ -0,0 +1,50 @@ +package com.baeldung.test.comparison; + +import java.util.Arrays; +import java.util.Collection; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(value = Parameterized.class) +public class MyParameterisedUnitTest { + + private String name; + private NameCheck nameCheck; + + @Before + public void initialSetup() { + nameCheck = new NameCheck(); + } + + public MyParameterisedUnitTest(String myName) { + this.name = myName; + } + + @Parameters + public static Collection data() { + Object[][] data + = new Object[][] { { "Peter" }, { "Sam" }, { "Tim" }, { "Lucy" } }; + return Arrays.asList(data); + } + + @Test + public void pushNameTest() { + boolean valid = nameCheck.nameCheck(name); + Assert.assertEquals(valid, true); + } +} + +class NameCheck{ + + public boolean nameCheck(String name) { + if(name.length()>0) + return true; + return false; + } + +} diff --git a/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTestNg.java b/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTestNg.java new file mode 100644 index 0000000000..d5e4465b3d --- /dev/null +++ b/core-java/src/test/java/com/baeldung/test/comparison/MyParameterisedUnitTestNg.java @@ -0,0 +1,80 @@ +package com.baeldung.test.comparison; + +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +public class MyParameterisedUnitTestNg { + + private PrimeNumberCheck primeNumberChecker; + + @BeforeClass + public void intialSetup(){ + primeNumberChecker = new PrimeNumberCheck(); + } + + @Test(enabled=false) + @Parameters({"num","expectedResult"}) + public void parameterCheckTest(int number,boolean expectedResult) { + Assert.assertEquals(expectedResult, + primeNumberChecker.validate(number)); + } + + @DataProvider(name = "test1") + public static Object[][] primeNumbers() { + return new Object[][] { + {2, true}, {6, false}, {19, true}, {22, false}, {23, true}}; + } + + @Test(dataProvider = "test1") + public void testPrimeNumberChecker(Integer inputNumber, Boolean expectedResult) { + Assert.assertEquals(expectedResult, + primeNumberChecker.validate(inputNumber)); + } + + @Test(dataProvider = "myDataProvider") + public void parameterCheckTest(User user) { + Assert.assertEquals("sam",user.getName()); + Assert.assertEquals(12,user.getAge()); + } + + @DataProvider(name = "myDataProvider") + public Object[][] parameterProvider() { + User usr = new User(); + usr.setName("sam"); + usr.setAge(12); + return new Object[][]{{usr}}; + } + +} + +class PrimeNumberCheck{ + + public Object validate(int number) { + for(int i=2;i numbers; + + @BeforeClass + public static void initialize() { + numbers = new ArrayList<>(); + } + + @AfterClass + public static void tearDown() { + numbers = null; + } + + @Before + public void runBeforeEachTest() { + numbers.add(1); + numbers.add(2); + numbers.add(3); + } + + @After + public void runAfterEachTest() { + numbers.clear(); + } + + @Test + public void givenNumbers_sumEquals_thenCorrect() { + int sum = 0; + for (int num : numbers) + sum += num; + Assert.assertEquals(6, sum); + } + + @Ignore + @Test + public void givenEmptyList_sumEqualsZero_thenCorrect(){ + int sum = 0; + for (int num : numbers) + sum += num; + Assert.assertEquals(6, sum); + } + + @Test(expected = ArithmeticException.class) + public void calculateWithException() { + int i = 1/0; + } +} diff --git a/core-java/src/test/java/com/baeldung/test/comparison/SummationServiceTestTestNg.java b/core-java/src/test/java/com/baeldung/test/comparison/SummationServiceTestTestNg.java new file mode 100644 index 0000000000..aecc790374 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/test/comparison/SummationServiceTestTestNg.java @@ -0,0 +1,101 @@ +package com.baeldung.test.comparison; + +import java.util.ArrayList; +import java.util.List; + +import org.testng.Assert; +import org.testng.TestNG; +import org.testng.annotations.AfterClass; +import org.testng.annotations.AfterGroups; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeGroups; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class SummationServiceTestTestNg extends TestNG{ + + private List numbers; + + private int testCount=0; + + @BeforeClass + public void initialize() { + numbers = new ArrayList<>(); + } + + @AfterClass + public void tearDown() { + numbers = null; + } + + @BeforeMethod + public void runBeforeEachTest() { + testCount++; + } + + @AfterMethod + public void runAfterEachTest() { + + } + + @BeforeGroups("negative_tests") + public void runBeforeEachNegativeGroup() { + numbers.clear(); + } + + @BeforeGroups("regression") + public void runBeforeEachRegressionGroup() { + numbers.add(-11); + numbers.add(2); + } + + @BeforeGroups("positive_tests") + public void runBeforeEachPositiveGroup() { + numbers.add(1); + numbers.add(2); + numbers.add(3); + } + + @AfterGroups("positive_tests,regression,negative_tests") + public void runAfterEachGroup() { + numbers.clear(); + } + + @Test(groups="positive_tests",enabled=false) + public void givenNumbers_sumEquals_thenCorrect() { + int sum = 0; + for (int num : numbers) + sum += num; + Assert.assertEquals(sum, 6); + } + + @Test(groups="negative_tests") + public void givenEmptyList_sumEqualsZero_thenCorrect(){ + int sum = 0; + for (int num : numbers) + sum += num; + Assert.assertEquals(0, sum); + } + + @Test(groups = "regression") + public void givenNegativeNumber_sumLessthanZero_thenCorrect() { + int sum = 0; + for (int num : numbers) + sum += num; + System.out.println(sum); + Assert.assertTrue(sum<0);; + } + + @Test(groups="sanity") + public void givenNumbers_doSum(){ + + } + + @Test(expectedExceptions = ArithmeticException.class) + public void calculateWithException() { + int i = 1/0; + } + + +} diff --git a/core-java/src/test/java/com/baeldung/test/comparison/TimeOutTest.java b/core-java/src/test/java/com/baeldung/test/comparison/TimeOutTest.java new file mode 100644 index 0000000000..baf2db9521 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/test/comparison/TimeOutTest.java @@ -0,0 +1,10 @@ +package com.baeldung.test.comparison; + +import org.testng.annotations.Test; + +public class TimeOutTest { + @Test(timeOut = 1000,enabled=false) + public void testInfinity() { + while (true); + } +} diff --git a/core-java/src/test/resources/parameterised_test.xml b/core-java/src/test/resources/parameterised_test.xml new file mode 100644 index 0000000000..69a2c60460 --- /dev/null +++ b/core-java/src/test/resources/parameterised_test.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core-java/src/test/resources/test_group.xml b/core-java/src/test/resources/test_group.xml new file mode 100644 index 0000000000..0c9a6c73df --- /dev/null +++ b/core-java/src/test/resources/test_group.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/core-java/src/test/resources/test_suite.xml b/core-java/src/test/resources/test_suite.xml new file mode 100644 index 0000000000..36305aa5fc --- /dev/null +++ b/core-java/src/test/resources/test_suite.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file