如何使用 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中文网其他相关文章!