新手jMock Q:测试方法参数是以给定前缀开头的任何字符串

时间:2015-01-08 01:23:20

标签: java jmockit jmock

我有一个模拟对象,希望调用它上面的方法。如何确保它所期望的字符串参数以特定前缀开头?

oneOf(mockObject).methodName(with(any(String.class));

2 个答案:

答案 0 :(得分:1)

在JMockit的情况下,它提供了开箱即用的匹配器:

new Expectations() {{
    mockObject.methodName(withPrefix("PREFIX"));
}};

答案 1 :(得分:0)

我会使用自定义匹配器。事实证明,jmock网站上关于如何编写自定义匹配器的示例包括编写一个匹配前缀。我不会在这里复制代码,但链接是http://www.jmock.org/custom-matchers.html

或者,更懒惰的方法是检查字符串是否包含字符串中任何位置的特定前缀。您可以使用现有的' stringContaining'匹配器。

oneOf(mockObject).methodName(with(stringContaining("PREFIX"));

您的单元测试中是否可以接受这取决于字符串,前缀和您正在测试的内容。