为了账号安全,请及时绑定邮箱和手机立即绑定

发现难以将值添加到已在 junit 中声明为全局的列表

发现难以将值添加到已在 junit 中声明为全局的列表

呼如林 2022-07-20 20:43:35
我发现很难将值添加到列表中。我做了很多研究,但似乎都没有。请找到我的以下代码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");}

}


查看完整回答
反对 回复 2022-07-20
?
偶然的你

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);


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号