您好我已经为robolectric 2.3项目写了一个课程如下
@Implements(Bitmap.class)
public class MyShadowBitmap extends ShadowBitmap {
public MyShadowBitmap() {
// can also be some other config value
setConfig(Bitmap.Config.ARGB_8888);
}
}
我的问题是如何编写CustomTestRunner类,它将扩展RobolectricTestRunner以及如何在robolectric中使用MyShadowBitmap进行单元测试,请帮忙。
答案 0 :(得分:1)
我使用的是Robolectric 2.3,并且可以使用Robolectric的@Config注释来使用自定义阴影。
这就是我所拥有的:
// ShadowLog class, to print android.util.Log to the console when running tests
@Implements(Log.class)
public class ShadowLog {
@Implementation
public static void d(String tag, String msg) {
print(tag, "D", msg, null);
}
// other implementation
private static void print(String tag, String level, String msg, Throwable throwable) {
System.out.printf("%s(%s): %s. %s\n", tag, level, msg, (null == throwable ? "" : throwable));
}
}
// Test class
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowLog.class})
public class MyTest {
private static final String TAG = MyTest.class.getSimpleName();
@Test
public void testLog {
Log.d(TAG, "debug log");
Log.i(TAG, "info log");
Log.w(TAG, "warning log");
Log.e(TAG, "error log");
}
}
这就是我在控制台中所拥有的:
MyTest(D): debug log.
MyTest(I): info log.
MyTest(W): warning log.
MyTest(E): error log.
注意:您也可以将@Config应用于单个测试用例而不是整个类。