我发现很难将值添加到列表中。我做了很多研究,但似乎都没有。请找到我的以下代码public class Test(){List <String> list=new ArrayList<>(String); // globalpublic Object method1(){ // here am adding the values to list}String method2(){if(list.Contains("somethig")) //true}}当我直接通过junit调用method2时,列表为空。如何将值添加到junit中的列表?这正是难以增加价值的地方。我尝试了以下方法,但它不起作用。它抛出空指针异常List<Test> obj=new ArrayList<Test>();Test cObject=Mockito.mock(Test.class); cObject.list.add("something"); //getting error in this lineobj.add(cObject);如何在不重构代码的情况下解决问题?我在哪里犯错?
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
这就是我解决这个问题的方法。
public class TestCases(){
@InjectMocks
Test obj=new Test();
@Test
public void list(){
MockitoAnnotations.initMocks(this);
obj.list.add("something");}
}
偶然的你
TA贡献1841条经验 获得超3个赞
您可以使用反射将自定义列表实现设置为列表。就像是:
ArrayList<Object> value = new ArrayList<>();
value.add("something");
Test obj = new Test();
Field field = obj.getClass().getDeclaredField("name_of_field");
// need for private field access
field.setAccessible(true);
field.set(obj, value);
添加回答
举报
0/150
提交
取消
