Tag: mocking

jmock模拟静态方法

我的代码中有一个静态方法,我想以某种方式模拟。 我正在使用jmock。 我认为我可以这样做的一种方法是在静态方法周围使用“包装类”并模拟这个,但我希望有更好的解决方案。 我这是错误的方式吗? 反馈: 我将有一个接口和类有一个方法,只是调用静态方法。 它允许我通过模拟对这个包装类的调用来模拟逻辑。 (甚至谈论它我都觉得很脏:))

形成Mockito“语法”

Mockito似乎是一个非常甜蜜的Java存根/模拟框架。 唯一的问题是我找不到关于使用其API的最佳方法的任何具体文档。 测试中使用的常用方法包括: doXXX(???) : Stubber when(T) : OngoingStubbing then(T) : OngoingStubbing verify(???) : T given(T) : BDDOngoingStubbing willXXX(???) : BDDStubber 当你在实践中看到Mockito的例子时,你会看到如下代码: when(yourMethod()).thenReturn(5); 从我读过的所有文档中,我已经确定了Mockito“语法”的几个“模式”,它们是通过菊花链式连接这些方法调用获得的,就像上面的例子一样。 我发现的一些常见模式是: 当/ Then: when(yourMethod())。thenReturn(5); 给定/将:给定(yourMethod())。willThrow(OutOfMemoryException.class); Do / When: doReturn(7).when(yourMock.fizzBu​​zz()); Will / Given / Do: willReturn(any())。given(yourMethod())。doNothing(); validation/执行:validation(yourMethod())。doThrow(SomeException.class); 我正在窒息的是如何选择正确的模式/方法调用组合来模拟我的测试用例。 看起来你可以在看似无穷无尽的组合中将它们连接起来,我不确定哪种模式适合哪个问题。 一些Mockito Guru可以帮助阐明Mockito方法的哪些模式/组合用于哪种类型的测试用例(以及为什么)? 提前致谢!