如何在测试中只执行一次方法安装



我有测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestRepositoryConfig.class})
@Transactional
public class ServiceTest {
    @Autowired
    private UserRepository userRepository;
    @Autowired
    private Service service;
static {
   initTestUser();
}
public void setUp() { 
   userRepository.seve(testUser);
}
public void test1() { ... }
public void test2() { ... }

我需要首先启动方法setUp,保存testUser,然后启动方法test1和test2。方法安装必须只执行一次!怎么能做到呢?

我认为你正在试图解决的问题应该用另一种方法来解决。据我所知,您希望用一些测试数据填充您的数据库,这最好在所有测试的全局配置中完成。

但如果你想坚持你最初的想法,你可以尝试这篇博客文章中描述的听众方法。

使用@BeforeClass注释

public class MyTest {
     @BeforeClass public static void setupClass() { /* Set up stuff once */ }
     @Test public void test1() { /* ... */ }
}
但是请注意,静态方法不能访问实例成员,并且您想要在测试运行之前设置的东西需要是静态的。建议使用@AfterClass
进行清理。

最新更新