我發現很難將值添加到列表中。我做了很多研究,但似乎都沒有。請找到我的以下代碼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
提交
取消