Java 中Mockito和Spring Mock

前言

开发中自测时,经常需要和其它同学开的接口联调,有时没有接品没有数据,可以mock只关注自己的代码

Mockito

  • return
  • donothing
  • verify
  • answer
  • reset
@RunWith(MockitoJUnitRunner.class)
public class TestMo {

    @Mock
    HashMap<String, String> map;

    @Mock
    User user;

    @Test
    public void testReturn() {
        when(map.get("a")).thenReturn("aa");
        Assert.assertEquals("aa", map.get("a"));
    }

    @Test
    public void testDoNothing() {
        doNothing().when(user).sayHello();
        user.sayHello();
    }

    @Test
    public void testVerify() {
        user.sayHello();
        verify(user).sayHello();
    }

    @Test
    public void testAnswer() {
        when(map.get("a")).thenAnswer(new Answer<String>() {

            @Override
            public String answer(InvocationOnMock invocationOnMock) throws Throwable {
                return "aaa";
            }
        });
        Assert.assertEquals("aaa", map.get("a"));
    }

    @Test
    public void testRest() {
        when(map.get("a")).thenReturn("aa");
        reset(map);
        Assert.assertEquals(null, map.get("a"));
    }

}

class User {
    public void sayHello() {
        System.out.println("hello world");
    }
}

Spring Mock

@RunWith(SpringJUnit4ClassRunner.class)

加载Spring和Junit环境

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockApplication.class)
public class TestMock {

    @Autowired
    TestService testService;

    @MockBean
    DemoService demoService;

    @Test
    public void testRun() {
        when(demoService.getCount()).thenReturn(1L);
        testService.testRun();
    }
}

总结

  • spring mock 中重要的是要加载spring的环境,还有mock的注解不一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wending-Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值