java-有什么方法可以模拟pojo,然后在嘲笑中手动设置值?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-有什么方法可以模拟pojo,然后在嘲笑中手动设置值?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1156字,纯文字阅读大概需要2分钟。
内容图文
![java-有什么方法可以模拟pojo,然后在嘲笑中手动设置值?](/upload/InfoBanner/zyjiaocheng/667/9251eb2fc35947d0a9af641b6b15dbbd.jpg)
考虑一个方法在我的服务中返回A类,
public List<A> method(){
A a=B.method_b();
List<A> list=new ArrayList<>();
for(A aa:a){
A classA=new A();
classA.setVal1(aa.getVal1());
list.add(classA);
}
return list;
}
我的pojo课
class A{
private int val1;
private int val2;
.
.
.
.
private int val10;
//setter and getter
}
所以在测试用例中,我写为
@Mock
B b;
@Test
public void check(){
Mockito.when(b.method_b())
.thenReturn(return_A());
}
private A return_A(){
A a=new A();
a.setVal1(1);
.
.
.
a.setVal10(10);
}
在这里一切正常,代码覆盖范围也很好.但是我的问题是,是否有任何可能的方法来避免通过使用Mockito返回A类的私有方法?
解决方法:
在单元测试中,您可以根据输入定义类的行为.
这意味着您必须指定此输入.没有其他办法了.
有不同的方法可以做到这一点.
一种配置DTO的方法.
另一种方法是生成输入数据.但这有一些缺点:
-您仍然需要一个方法(或类)来做到这一点,
-它使您的考试难以阅读和理解,
-它会在您的测试中引入失败可能性,从而降低可靠性,
另一种方法是仅在测试方法的// arrange部分中设置当前测试所需的那些值:
@Mock
B b;
@Test
public void check(){
// arrange
Mockito.when(b.method_b())
.thenReturn(return_A());
A a=new A();
// values to be used by cut in this test
a.setVal1(1);
a.setVal3(3);
// act
// assert
}
内容总结
以上是互联网集市为您收集整理的java-有什么方法可以模拟pojo,然后在嘲笑中手动设置值?全部内容,希望文章能够帮你解决java-有什么方法可以模拟pojo,然后在嘲笑中手动设置值?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。