我正在尝试测试我们为android.util.Log
框架编写的包装器。
我的阴影代码和测试如下所示:
@Implements(Log.class)
public static class ShadowLog {
@Implementation
public static int i(java.lang.String tag, java.lang.String msg) {
System.out.println("[SHADOW] [" + tag + "] " + msg);
return 0;
}
}
测试类包含适当的标记:
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {LnTest.ShadowLog.class})` tags.
这是测试:
@Test
public void foobar() {
Ln.i("LN_TAG", "LN_MSG");
Log.i("DIRECT_TAG", "DIRECT_MSG");
}
注意:Ln
是我们的Log包装器,我想测试它。它本身包含对Log.i
,Log.d
等的调用...
测试的输出是:
[SHADOW] [DIRECT_TAG] DIRECT_MSG
println
调用中看到了一个shadow Log
语句,但是我没有看到调用我们的自定义包装器的任何语句...... 有人可以解释为什么这不起作用以及如何解决它?