【单元测试】Mockito与PowerMock介绍

本文介绍了Mockito和PowerMock在单元测试中的作用,如何使用它们来解决测试中的问题。Mockito通过创建虚拟对象替代外部依赖,方便测试。PowerMock则扩展了Mockito的功能,支持静态方法、私有方法的模拟,提供更全面的测试覆盖。通过实例展示了Mockito和PowerMock的使用方法,帮助理解这两者在测试场景中的应用。
摘要由CSDN通过智能技术生成

什么是Mock?

在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和service,这也就导致了以下两个问题:

  • 外部服务可能无法在单元测试的环境中正常工作,因为它们可能需要访问数据库或者使用一些其它的外部系统。
  • 我们的测试关注点在于这个类的实现上,外部类的一些行为可能会影响到我们对本类的测试,那也就失去了我们进行单测的意义。

为了解决这种问题,Mockito和PowerMock诞生了。这两种工具都可以用一个虚拟的对象来替换那些外部的、不容易构造的对象,便于我们进行单元测试。两者的不同点在于Mockito对于大多数的标准单测case都很适用,而PowerMock可以去解决一些更难的问题(比如静态方法、私有方法等)。

Mockito

话不多说,就上干货。在下面这个例子中,我们要测试的class是DummyServiceDummyRepository用来从数据库中获取数据。getDummyNameUpperCase()方法会根据id获取数据,且该方法有一些数据处理的逻辑,如果我们只想测试这个逻辑:

public class DummyServiceTest {
   

    @Mock
    private DummyRepository dummyRepository;

    @InjectMocks
    private DummyService dummyService;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void getDummyNameUpperCase() {

        Dummy mockedDummy = new Dummy("dm1", "Dummy 1", 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值