我是靠谱客的博主 甜蜜冰棍,最近开发中收集的这篇文章主要介绍Mockito结合spring进行跨层 mockspring web 业务系统单测使用Jmockit 进行夸层mock 也可以static 方法mock 方法1:方法2:,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
spring web 业务系统单测使用Jmockit 进行夸层mock 也可以static 方法mock
总体不如Jmockit.
推荐方法3
方法1:
较繁琐, 找到被使用方B, 设置@InjectMocks B, 然后设置@Mock C
行
public class RoomManagerSpringMockTest extends BaseSpringMockTest {
@Resource
A a;
@Resource
@InjectMocks
B b;
@Mock private C c;
@Test
public void test() {
PowerMockito.when(c.call()).thenReturn(2);
a.ACallB();
}
}
方法2:
手动通过ReflectionTestUtils 反射修改值
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class JavaLogAnnotationApplicationTests {
@Autowired
private ServiceA serviceA;
@Autowired
private ServiceB serviceB;
private ServiceC serviceC;
@Before
public void setup() {
serviceC = Mockito.mock(ServiceC.class);
ReflectionTestUtils.setField(serviceB, "serviceC", serviceC);
}
@Test
public void test() {
when(serviceC.test(any(String.class))).thenRetrun(null);
serviceA.test();
}
————————————————
版权声明:本文为CSDN博主「LMSX」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hdzhangpei/article/details/83376993
方法3: spring方法调用切面
调用的时候替换成mock对象.
过程 1. mock一个对象, 2. 调用mockBean池子的collect接口,把想要mock的类给记录下. 3. mockitio.when设置mock属性 4. 设置方法调用切面,把对应的类的调用拦截下来,转调用mockBean池子里的类.
方法4: 把bean初始化拦截下来,替换成mockBean. 但是无法拦截bean的初始化. 只能mock bean的调用
附录
最后
以上就是甜蜜冰棍为你收集整理的Mockito结合spring进行跨层 mockspring web 业务系统单测使用Jmockit 进行夸层mock 也可以static 方法mock 方法1:方法2:的全部内容,希望文章能够帮你解决Mockito结合spring进行跨层 mockspring web 业务系统单测使用Jmockit 进行夸层mock 也可以static 方法mock 方法1:方法2:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复