Mockito似乎是一个非常漂亮的Java存根/模拟框架。唯一的问题是,我找不到有关使用其API的最佳方法的任何具体文档。测试中常用的方法包括:
doXXX(???) : Stubber
when(T) : OngoingStubbing
then(T) : OngoingStubbing
verify(???) : T
given(T) : BDDOngoingStubbing
willXXX(???) : BDDStubber
在实践中看到Mockito的示例时,您将看到类似以下的代码:
when(yourMethod()).thenReturn(5);
从我阅读的所有文档中,我已经确定了通过菊花链将这些方法调用链接在一起而获得的Mockito“语法”的几种“模式”,就像上面的示例一样。我发现的一些常见模式是:
什么时候/然后: when(yourMethod())。thenReturn(5);
给定/将: 给定(yourMethod())。willThrow(OutOfMemoryException.class);
做/何时: doReturn(7).when(yourMock.fizzBuzz());
Will / Given / Do: willReturn(any())。given(yourMethod())。doNothing();
验证/执行: verify(yourMethod())。doThrow(SomeException.class);
我最讨厌的是如何选择正确的模式/方法调用组合来对我的测试用例进行建模。似乎您可以将这些菊花链以似乎无穷无尽的组合方式菊链在一起,但我不确定哪种模式适合于哪个问题。
一些Mockito Guru能否帮助您了解哪种Mockito方法的模式/组合用于哪种类型的测试用例(以及为什么)?提前致谢!
Mockito通常有几种处理方法。
我发现自己主要使用:
// Setup expectations
when(object.method()).thenReturn(value);
when(object.method()).thenThrow(exception);
doThrow(exception).when(object.voidMethod());
// verify things
verify(object, times(2)).method();
verify(object, times(1)).voidMethod();
我发现通过这三种电话我可以完成95%的工作。
另外,您使用的是Mockito的哪个版本?最新版本(1.9.0+)中不存在“给定”和“将”构造
但是,在某些情况下,我希望返回值或异常能够响应输入。在这种情况下,可以使用Answer接口检查方法参数并返回适当的值。
public class ReturnFirstArg<T> implements Answer<T> {
public T answer(InvocationOnMock invocation) {
return invocation.getArguments()[0];
}
}
when(object.method(7)).thenAnswer(new ReturnFirstArg<Integer>());
Mockito似乎是一个非常好的Java存根/模拟框架。唯一的问题是我找不到任何关于使用API的最佳方法的具体文档。测试中使用的常用方法包括: 当您在实践中看到Mockito的示例时,您会看到如下代码: 从我读过的所有文档中,我已经识别了几个Mockito“语法”的“模式”,这些“语法”是通过将这些方法调用像上面的示例一样链接在一起而获得的。我发现的一些常见模式有: 当/然后:当(你的方法())。
不确定语法是否要做这样的事情:我希望在运行时定义标记(将来使用文件中的数据)。所以我编写了一个简单的测试代码,正如预期的那样,它甚至不会编译。 在Perl 6中执行此类操作的最佳方法是什么?
问题内容: 使用Mockito,我想在其参数列表中使用方法调用,但是我没有找到如何编写该方法的方法。 我只想要像Mockito那样的东西? 问题答案: 我会尝试
在编写测试用例时,我使用Mockito模拟某个类。 有没有办法在返回值之前打印一些语句?例如: 上述声明有效,但我无法做到以下几点:
主要内容:语法,示例,创建盒形图,盒形图与凹口盒形图是数据集中数据分布情况的衡量标准。它将数据集分为三个四分位数。盒形图表示数据集中的最小值,最大值,中值,第一四分位数和第四四分位数。 通过为每个数据集绘制箱形图,比较数据集中的数据分布也很有用。 R中的盒形图通过使用函数来创建。 语法 在R中创建盒形图的基本语法是 - 以下是使用的参数的描述 - x - 是向量或公式。 data - 是数据帧。 notch - 是一个逻辑值,设置为可以画出一
HQL 支持两种关联 join 的形式:implicit(隐式) 与 explicit(显式)。 上一节中给出的查询都是使用 explicit(显式)形式的,其中 form 子句中明确给出了 join 关键字。这是建议使用的方式。 implicit(隐式)形式不使用 join 关键字。关联使用"点号"来进行“引用”。implicit join 可以在任何 HQL 子句中出现。implicit jo