我必须处理一个没有测试的遗留应用程序。所以在我开始重构之前,我想确保一切正常。
现在想象以下情况:
public SomeObject doSomething(final OtherObject x, final String something) {
if(x == null) throw new RuntimeException("x may not be null!");
...
}
现在我想测试那个空检查,以确保它有效并且一旦我重构就不会丢失它。
所以我做了这个
@Test(expected = RuntimeException.class)
public void ifOtherObjectIsNullExpectRuntimeException() {
myTestObject.doSomething(null, "testString");
}
现在,这当然有效。
但我想传入一个随机字符串,而不是“testString”。
所以我尝试了:
@Test(expected = RuntimeException.class)
public void ifOtherObjectIsNullExpectRuntimeException() {
myTestObject.doSomething(null, Mockito.anyString());
}
但这是不允许的。,正如我得到的
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: ...您不能在验证或存根之外使用参数匹配器
我确实理解这个的含义,但我想知道我是否仍然可以在不参数化我的测试等的情况下做我想做的事情。我可能使用的唯一库是 Junit、AssertJ、Mockito 和 Powermock。
有任何想法吗?