package test.sample; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** * Check to see that AfterClass is called only at the end and that after methods * are called in reverse order of the before methods. */ public class AfterClassCalledAtEnd extends BaseAfterClassCalledAtEnd { boolean m_before1Class = false; boolean m_test1 = false; boolean m_test2 = false; boolean m_test3 = false; @BeforeClass(groups = { "before1Class" } ) public void before1Class() { m_before1Class = true; } @AfterClass(groups = { "someGroup" }) public void afterClass() { m_afterClass = true; assert m_test1 && m_test2 && m_test3 : "One of the test methods was not invoked: " + m_test1 + " " + m_test2 + " " + m_test3; } @Test(description = "Verify that beforeClass and afterClass are called correctly") public void test1() { m_test1 = true; assert m_before1Class : "beforeClass configuration must be called before method"; assert ! m_afterClass : "afterClass configuration must not be called before test method"; } @Test public void test2() { m_test2 = true; assert m_before1Class : "beforeClass configuration must be called before method"; assert ! m_afterClass : "afterClass configuration must not be called before test method"; } @Test public void test3() { m_test3 = true; assert m_before1Class : "beforeClass configuration must be called before method"; assert ! m_afterClass : "afterClass configuration must not be called before test method"; } }