我是靠谱客的博主 甜蜜冰棍,最近开发中收集的这篇文章主要介绍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:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部