@After,@before在测试用例中不起作用

2022-09-01 04:08:47

我已经开始测试,现在我想使用,但我的应用程序只运行该方法并在控制台上提供输出@After@Before@Test@Before

以前

但是,如果我删除并运行@Test。我的代码在这里:@After@Before

public class TestPractise extends AbstractTransactionalDataSourceSpringContextTests{

    @Before
    public void runBare(){
        System.out.println("before");
    }

    @Test
    public void testingMethod(){
        System.out.println("testing");
    }

    @After
    public void setDirty(){
        System.out.println("after");
    }
}

为什么不同时工作?@After@Test@before


答案 1

使用 代替 和 代替 。@BeforeEach@Before@AfterEach@After


答案 2

该类强制使用旧的 JUnit 3.x 语法,这意味着任何 JUnit 4 注释都不起作用。AbstractTransactionalDataSourceSpringContextTests

执行您的方法不是因为注释,而是因为它被命名为 ,这是 由 和 JUnit TestCase 类提供的方法。runBare()@BeforerunBare()ConditionalTestCase

所以你有2个解决方案:

  • 使用AlexR答案来使用JUnit 4测试和Spring;
  • 保留 的继承,但使用 and 方法而不是 and 方法。AbstractTransactionalDataSourceSpringContextTestsonSetUponTearDown@Before@After

推荐