问题描述
只需向android项目添加一个简单的类,该类只有一个方法和一个构造函数。并为其添加了测试。但是它说覆盖率不是100%。 有谁知道如何找出未覆盖代码行的地方?
该类仅用于在调试版本中使用第三方库,并且该依赖项仅在调试时存在。这是添加的类,CommonInterface可用于调试和发布。用于调试和发布的OptionaObjImpl不同,只是在调试中具有第三方库。
public interface CommonInterface {
@Nullable
JSONObject getoptionObj(Context context);
}
for debug:
public class OptionaObjImpl implements CommonInterface {
private JSONObject jsonObj = null;
public OptionaObjImpl(){}
@Nullable
@Override
public JSONObject getoptionObj(Context context) {
if (jsonObj == null) {
jsonObj = new ThirdPartLib.generateJson(context);
}
return jsonObj;
}
}
for release
public class OptionaObjImpl implements CommonInterface {
public OptionaObjImpl() {}
@Nullable
@Override
public JSONObject getoptionObj(Context context) {
return null;
}
}
测试是:
@RunWith(RobolectricTestRunner.class)
public class OptionalDependenciesTest extends BaseTest{
@Test
public void testConstructors() {
ReflectionHelpers.callConstructor(OptionaObjImpl.class);
}
@Test
public void constructor_test2() throws Exception {
Class<OptionaObjImpl> optionaObjImpllClass = OptionaObjImpl.class;
Constructor<?> constructor = optionaObjImpllClass.getDeclaredConstructor();
constructor.setAccessible(true);
Assert.assertNotNull(constructor.newInstance());
}
@Test
public void optionaObjImpl_ShouldHaveRightJsonObject() throws Exception {
CommonInterface optionalObjGetter = new OptionaObjImpl();
assertNotNull(optionalObjGetter);
JSONObject jsonObj = optionalObjGetter.getoptionObj(application);
if (jsonObj != null) {
assertTrue(jsonObj instanceof JSONObject);
} else {
assertTrue(jsonObj == null);
}
JSONObject jsonObj2 = optionalObjGetter.getoptionObj(application;
if (jsonObj2 != null) {
assertEquals(jsonObj,jsonObj2);
} else {
assertTrue(jsonObj2 == null);
}
}
}
感觉测试应该涵盖了方法和构造函数。谁知道从哪里可以找到未覆盖的代码行?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)