Dom*_*nic 12 java junit overriding junit4 jersey-2.0
我在球衣测试框架上遇到了一些问题.如果我使用@Before和@After注释,则target方法抛出NullPointerException.我认为JerseyTest适用于JUnit?我的问题在哪里?
代码失败:
public class MyResourceTest extends JerseyTest {
@Before
public void setUp() { }
@After
public void tearDown() { }
@Override
protected Application configure() {
return new ResourceConfig(MyResource.class);
}
@Test
public void SHOULD_RETURN_BAD_REQUEST() throws IOException {
System.out.println(target("myPath"));
assertEquals(1, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
位于org.glassfish.jersey.test.JerseyTest.target(JerseyTest.java:566)的java.lang.NullPointerException,位于foo.bar.MyResourceTest的org.glassfish.jersey.test.JerseyTest.target(JerseyTest.java:580). SHOULD_RETURN_BAD_REQUEST(MyResourceTest.java:43)
有效的代码:
public class MyResourceTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(MyResource.class);
}
@Test
public void SHOULD_RETURN_BAD_REQUEST() throws IOException {
System.out.println(target("myPath"));
assertEquals(1, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
JerseyWebTarget { http://localhost:9998/myPath }
Run Code Online (Sandbox Code Playgroud)
lub*_*nac 25
您的方法似乎覆盖了父进程中的一些重要初始化JerseyTest
.尝试以不同的方式命名.例如:
@Before
public void setUpChild() { }
@After
public void tearDownChild() { }
Run Code Online (Sandbox Code Playgroud)
Vic*_*tor 15
我来到这里是因为我使用的是 JUnit 5,它似乎没有看到 JerseyTest 设置/拆卸方法上的 @Before 和 @After 注释。我不得不覆盖它们并使用新的 JUnit 5 注释
public class MyResourceTest extends JerseyTest {
@BeforeEach
@Override
public void setUp() throws Exception {
super.setUp();
}
@AfterEach
@Override
public void tearDown() throws Exception {
super.tearDown();
}
@Override
protected Application configure() {
return new ResourceConfig(MyResource.class);
}
@Test
public void SHOULD_RETURN_BAD_REQUEST() throws IOException {
System.out.println(target("myPath"));
assertEquals(1, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3427 次 |
最近记录: |