Kar*_*k R 5 java junit jersey jersey-2.0 jersey-test-framework
我正在努力修复其中一个项目中的集成测试.目前,所有集成测试类都扩展了JerseyTest类.通过JerseyTest类,我意识到它使用Junit的Before和After注释为每个测试方法启动和停止容器.
为什么这有必要?如果我们提起容器一次,运行测试并在结束时将其关闭,这还不够吗?
我们也使用Spring,上下文初始化需要时间.
在Junit4之前,我们通过使用布尔标志手动处理它来解决这个限制.
@Before
public void setup() {
if(!containerStarted) {
// start
containerStarted = true;
}
// else do nothing
}
Run Code Online (Sandbox Code Playgroud)
您可以使用@BeforeClass 和@AfterClass 来覆盖JerseyTest 的@Before 和@After 生命周期。这是代码模板:
public abstract class MyJerseyTest {
private JerseyTest jerseyTest;
public MyJerseyTest(){
}
@BeforeClass
public void setUp() throws Exception {
initJerseyTest()
jerseyTest.setUp();
}
@AfterClass
public void tearDown() throws Exception {
jerseyTest.tearDown();
}
private void initJerseyTest() {
jerseyTest = new JerseyTest() {
@Override
protected Application configure() {
// do somthing like
enable(...);
set(...);
// create ResourceConfig instance
ResourceConfig rc = new ResourceConfig();
// do somthing like
rc.property(...);
rc.register(...);
return rc;
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
希望这是有帮助的。
归档时间: |
|
查看次数: |
5059 次 |
最近记录: |