我正在尝试模拟 Model.finder 来测试我的服务,但似乎由于某种原因没有注入 mockito,我不知道为什么。请帮忙。
public static Result deals() {
List<Product> finder = new Model.Finder<Long, Product>(Long.class, Product.class).all();
JsonNode jsonNode = Json.toJson(finder);
return ok(Json.stringify(jsonNode));
}
这是我的测试
@Mock
private Model.Finder finder;
@Before
public void setUp() throws Exception {
initMocks(this);
start(fakeApplication());
Product product = new Product();
product.id = 1L;
product.title = "Milk";
List<Product> products = Arrays.asList(product);
when(finder.all()).thenReturn(products);
}
@Test
public void shouldGetDeals() {
Result result = routeAndCall(fakeRequest(GET, "/products"));
assertThat(status(result), is(200));
String deals = contentAsString(result);
assertThat(deals, containsString("Milk"));
}
所以,结果是 Model.Finder 返回 0 因为模拟没有被调用。我不确定这是否是您在 Play 2.1 中模拟的方式?