在测试dropwizard资源时,Mockito总是返回null

时间:2015-04-30 19:07:04

标签: unit-testing junit mockito dropwizard

我正在尝试测试dropwizard资源,并按http://www.dropwizard.io/manual/testing.html进行测试。

但是,我总是从模拟的类/方法中获取一个null对象。

资源方法

    @GET
    @Path("/id")
    @ApiOperation("Find property by id")
    @Produces(MediaType.APPLICATION_JSON)
    public Property findById(@QueryParam("id") int id) {

        return propertyDAO.findById(id);
    }

和测试类

public class PropertiesResourceTest {

    private static final PropertiesDAO dao = mock(PropertiesDAO.class);

    @ClassRule
    public static final ResourceTestRule resources = ResourceTestRule.builder()
            .addResource(new PropertiesResource(dao))
            .build();

    private final Property property = new Property(1);

    @Before
    public void setUp() {

        when(dao.findById(eq(1))).thenReturn(property);
        reset(dao);
    }

    @Test
    public void findById() {
        assertThat(resources.client().target("/properties/id?id=1").request().get(Property.class))
                .isEqualTo(property);
        verify(dao).findById(1);
    }

}

我试图以多种方式旋转它,但结果总是一样的:

expected:<Property | ID: 1 > but was:<null>

你有什么线索为什么mockito总是返回一个空对象?

0 个答案:

没有答案