我有一个模拟对象,希望调用它上面的方法。如何确保它所期望的字符串参数以特定前缀开头?
oneOf(mockObject).methodName(with(any(String.class));
答案 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"));
您的单元测试中是否可以接受这取决于字符串,前缀和您正在测试的内容。