首页 > Java > java教程 > 如何使用 Mockito 部分模拟类中的方法?

如何使用 Mockito 部分模拟类中的方法?

DDD
发布: 2024-12-12 15:51:24
原创
393 人浏览过

How to Partially Mock Methods in a Class Using Mockito?

如何使用 Mockito 模拟类中的特定方法

在软件测试中,模拟允许您模拟依赖项或依赖项的行为您不想直接实例化的类。 Mockito 是一个 Java 模拟框架,使您能够模拟方法并验证与它们的交互。

具体来说,您可能会遇到这样的场景:您想要模拟类的某些方法,同时保持其他方法不变。这种方法称为部分模拟。以下是使用 Mockito 实现它的方法:

// Mock the Stock class with partial mocking
Stock stock = mock(Stock.class);

// Mock specific methods
when(stock.getPrice()).thenReturn(100.00);
when(stock.getQuantity()).thenReturn(200);

// Leave 'getValue()' unmocked
// It will execute the actual Stock.getValue() calculation
when(stock.getValue()).thenCallRealMethod();
登录后复制

这样,只有 getPrice() 和 getQuantity() 方法将被模拟,而 getValue() 将执行其原始代码。

此外,您可以将 CALLS_REAL_METHODS 参数与Mockito.mock():

Stock MOCK_STOCK = Mockito.mock(Stock.class, CALLS_REAL_METHODS);
登录后复制

这会将未存根的调用委托给实际实现。

但是,需要注意的是,在您的示例中,仅模拟 getPrice() 和 getQuantity()将无法正常工作,因为 getValue() 实现取决于它们的实际返回值。相反,请考虑完全避免模拟:

// Without mocks
Stock stock = new Stock(100.00, 200);
double value = stock.getValue();
登录后复制

以上是如何使用 Mockito 部分模拟类中的方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板