如何使用单元测试和模拟

时间:2017-09-17 09:18:53

标签: android junit mocking mockito junit4

我正在学习如何在android studio中进行单元测试。如下所示,我想在代码部分测试下面显示的两种方法。

您可以帮助并指导我如何测试这种方法吗?

public RequestCreator requestCreatorFromUrl(String mPicUrl) 
{
    return Picasso.with(mCtx).load(mPicUrl);
}

public void setImageOnImageView(RequestCreator requestCreator, ImageView mImagView) 
{
    requestCreator.into(mImagView);
}

我的尝试

@Test
public void whenRequestCreatorFromUrlTest() throws Exception {
    Picasso mockPicasso = mock(Picasso.class);
    File mockFile = mock(File.class);

    Assert.assertNotNull("returned Request creator is not null",    
 mockPicasso.load(mockFile));
}

1 个答案:

答案 0 :(得分:0)

您无法测试的第一种方法,您必须验证Mockito不支持的静态方法的调用。 您可以在

中拆分方法
public RequestCreator requestCreator() {
    return Picasso.with(mCtx); 
}

public void load(RequestCreator requestCreator, String picUrl) {
   requestCreator.load(picUrl)
}

并测试load(...)方法。

第二种方法:

模拟requestCreator。嘲笑imageView。 使用模拟对象调用方法。 然后使用提供的参数验证requestCreator.into(...)

Mockito.verify(requestCreator).into(imageView);