仅使用一种测试方法的ResourceConfig进行Jersey测试

时间:2019-06-17 18:14:45

标签: jersey-2.0 jersey-test-framework

我目前正在为一个基于球衣的简单Web应用程序编写测试,但遇到一个奇怪的问题,即同一类中的不同测试方法似乎正在使用不同的配置。具体来说,我有一个服务类:

@Path("service")
public class WebService {

  @Inject
  private ApplicationData data;

  @GET
  @Path("/single/{id}")
  public Result singleDo(@PathParam("id") String id) {
    logger.info("appData: " + data.getClass().getCanonicalName());
    // actually do things
  } 

  @POST
  @Path("/bulk")
  public Result[] bulkDo(String[] ids) {
    logger.info("appData: " + data.getClass().getCanonicalName());
    // actually do things
  }

该课程当前在实时环境中运行。为了处理训练和测试之间的不同状态变量,我有两个不同的ApplicationDataApplicationData类,它们是TestApplicationData的子类。我的测试课是:

ApplicationData

我不清楚这两种方法如何或为什么使用public class TestWebService extends JerseyTest { @Override protected Application configure() { ResourceConfig rc = new WebApplication(new TestApplicationData()); rc.register(WebService.class); return rc; } @Test public void testSingle() { target("/service/single/1234").request().get(); // this uses TestApplicationData, according to logs } @Test public void testBulk() { String[] list = new String[1]; list[0] = "1234"; target("/service/bulk").request().post(Entity.entity(list, MediaType.APPLICATION_JSON); // this uses ApplicationData, according to logs, and does not have information from TestApplicationData } } 的不同实例,或者第二种方法甚至如何访问非测试实例。

为什么会这样,该如何解决?

0 个答案:

没有答案
相关问题