| package test.sample; |
| |
| import org.testng.annotations.AfterClass; |
| import org.testng.annotations.AfterSuite; |
| import org.testng.annotations.Test; |
| |
| |
| /** |
| * This class is used to test invocationCountTest |
| * |
| * @author cbeust |
| */ |
| public class InvocationCountTest { |
| |
| // |
| // Invocation test |
| // |
| private static int m_count = 0; |
| |
| @AfterSuite(groups = {"invocationOnly"}) |
| public void afterSuite() { |
| m_count = 0; |
| m_count2 = 0; |
| m_count3 = 0; |
| } |
| |
| @Test(groups = { "invocationOnly"}, invocationCount = 10 ) |
| public void tenTimesShouldSucceed() { |
| m_count++; |
| } |
| |
| // |
| // Invocation + Success percentage test |
| // This method will work the first 8 times and fail after that, but overall |
| // the test should still pass because successPercentage = 80 |
| // |
| private static int m_count2 = 0; |
| |
| @Test(groups = { "successPercentageThatSucceedsOnly" }, |
| invocationCount = 10, successPercentage = 80) |
| public void successPercentageShouldSucceed() { |
| if (m_count2 >= 8) { |
| throw new RuntimeException("Called more than eight times : " + m_count2); |
| } |
| m_count2++; |
| } |
| |
| // |
| // Invocation + Success percentage test |
| // This method will work the first 8 times and fail after that. One of |
| // the failures will fall under the percentage tolerance but the next one |
| // will not. |
| // |
| private static int m_count3 = 0; |
| |
| @Test(groups = { "successPercentageThatFailsOnly" }, |
| invocationCount = 10, successPercentage = 90) |
| public void successPercentageShouldFail() { |
| if (m_count3>= 8) { |
| throw new RuntimeException("Called more than eight times : " + m_count3); |
| } |
| m_count3++; |
| } |
| |
| @AfterClass(groups = { "invocationOnly"}) |
| public void verify() { |
| assert 10 == m_count : "Method should have been invoked 10 times but was invoked " |
| + m_count + " times"; |
| } |
| |
| public static void ppp(String s) { |
| System.out.println("[InvocationCount] " + s); |
| } |
| |
| } |