Beim Testen von Jersey REST OrderResource
wird List<Order> orders
leer zurückgegeben. Der Mockito-Teil scheint falsch zu funktionieren, da er auf den Datenbank-Layer zugreift. Wie man es repariert?Mokito funktioniert nicht mit Jersey und Jetty, während JUnit-Tests ausgeführt werden
-Test
public class OrderResourceTest extends JerseyTest {
@Mock
private OrderService orderServiceMock;
@Override
protected Application configure() {
MockitoAnnotations.initMocks(this);
enable(TestProperties.LOG_TRAFFIC);
enable(TestProperties.DUMP_ENTITY);
//database set up
ResourceConfig resourceConfig = new ResourceConfig(OrderResource.class);
return resourceConfig;
}
@Test
public void testGetOrders() {
when(orderServiceMock.findOrders()).thenReturn(getMockOrders());
Response response = target("/orders")
.request()
.get();
List <Order> orders = response.readEntity(new GenericType < List <Order>>() {});
assertEquals("Should return status 200", 200, response.getStatus());
assertTrue(orders.size() == 1); // orders.size() is 0. Why?
}
private List <Order> getMockOrders() {
Customer customer = new Customer(1 L, "CompanyName", "Street", "123456", "City", "UK");
List <OrderLine> orderLines = Arrays.asList(new OrderLine(1 L, "s345664lkdLDSDf", "Samsung Galaxy 4", 1));
Order order = new Order(1 L, customer, orderLines);
return Arrays.asList(order);
}
}
Diese project als Referenz verwendet wurde
Wo sehen Sie Ihr System unter Test anweisen zu verwenden 'orderServiceMock' anstatt Ihre Produktion Order? –
Im aktuellen Test nicht sicher. –