Rob*_*hai 4 java android unit-testing
我有一个处理片段创建的控制器类.让我们说如下:
public class FragmentController {
public static Fragment newInstance(String title, int total) {
return total > 0? MultipleDataFragment.newInstance(title, total)
: SingleDataFragment.newInstance(title);
}
}
Run Code Online (Sandbox Code Playgroud)
public class MultipleDataFragment extends Fragment {
public static MultipleDataFragment newInstance( String title, int total) {
Bundle b = new Bundle();
b.putString("title", title);
b.putInt("total", total);
}
}
Run Code Online (Sandbox Code Playgroud)
public class SingleDataFragment extends Fragment {
public static SingleDataFragment newInstance( String title, int total) {
Bundle b = new Bundle();
b.putString("title", title);
b.putInt("total", total);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试(标准Junit4测试类)中,我有:
@Test
public void testNewInstanceCreteMultipleData() throws Exception {
Fragment f = FragmentController.newInstance("Hello", 5);
assertTrue("MultipleDataFragment should be created"
, f instanceOf MultipleDataFragment);
}
Run Code Online (Sandbox Code Playgroud)
因为我没有嘲笑Bundle,所以我得到了.
java.lang.RuntimeException: Method putString not mocked.Set
Run Code Online (Sandbox Code Playgroud)
问题是如何模拟Bundle对象以便执行测试?我是否需要在创建Bundle对象的每个类中使用静态方法,而是使用它还是有更好的方法吗?
任何一个例子都是值得赞赏的.
归档时间: |
|
查看次数: |
3146 次 |
最近记录: |