为多个JUnit测试类添加setUp步骤

时间:2013-08-27 08:32:32

标签: java unit-testing junit junit4 junit-runner

在一个项目中,有多个测试类,每个测试类包含多个测试方法。比如,我想在运行每个测试类之前创建数据库连接。无论我是运行单个测试类,多个测试类还是测试套件,都应该建立连接。 最重要的是,在多个测试类的情况下,不应该反复调用此步骤。无论我正在运行的测试类的数量如何,都应该只进行一次连接。

您能否提出设计或任何JUnit提示来解决此问题?

3 个答案:

答案 0 :(得分:3)

您可以在测试套件中运行这些类。请参阅this question和提供的答案。

或者更改您的设计并使用@BeforeClass注释在每个测试类之前运行一次设置。

  

有时,多个测试需要共享计算成本高昂的设置   (比如登录数据库)。虽然这可以妥协   测试的独立性,有时候是必要的优化。   使用@BeforeClass注释public static void no-arg方法会导致   它在类中的任何测试方法之前运行一次。该   超级类的@BeforeClass方法将在那些之前运行   现在的课程。

答案 1 :(得分:0)

使用@Before Junit注释

  

编写测试时,通常会发现需要进行多项测试   在运行之前创建的类似对象。诠释公共空白   使用@Before的方法会导致该方法在Test之前运行   方法。 @Before超类方法将在这些方法之前运行   当前班级。

简单地为所有junit类引入一个超类。您可以将数据库连接逻辑放在Superclass @Before带注释的方法中。

答案 2 :(得分:0)

如果你正在使用弹簧测试,那么你可以使用这里采用的技术:How to load DBUnit test data once per case with Spring Test