【发布时间】:2018-08-10 04:28:43
【问题描述】:
我正在为我的应用程序中的类进行单元测试,它只是一个简单的类,我认为我做的一切都是正确的,但测试失败了
需要但未调用: mContextWeakReference.get(); -> 在 rahmat.com.app.utility.backwardcompatibility.StringResourceUtilTest.getString(StringResourceUtilTest.java:40) 实际上,与此模拟的交互为零。
这是要测试的类
public class StringResourceUtil {
private static StringResourceUtil sInstance;
private WeakReference<Context> mContextWeakReference;
public static StringResourceUtil getInstance() {
return sInstance;
}
@Inject
public StringResourceUtil(Context context) {
mContextWeakReference = new WeakReference<>(context);
sInstance = this; //NOSONAR
}
public String getString(int resId) {
return mContextWeakReference.get().getString(resId);
}}
这是我做的单元测试
public class StringResourceUtilTest {
private StringResourceUtil mResourceUtil;
@Mock
private Context mContext;
@Mock
private WeakReference<Context> mContextWeakReference;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
mResourceUtil = new StringResourceUtil(mContext);
}
@Test
public void getString() {
int resId = 123;
mResourceUtil.getString(resId);
verify(mContextWeakReference).get().getString(eq(resId));
}}
任何帮助将不胜感激,谢谢
【问题讨论】:
标签: java android unit-testing mockito