【发布时间】:2016-01-30 16:35:15
【问题描述】:
假设我正在测试以下方法。
/**
* Does something. This method throws a {@code NullPointerException}
* either given string or specified charset is {@code null}.
* @param s the string
* @param c the charset
*/
void doSomething(String s, Charset c) {
}
当我测试时,如何为非空目的制作模拟?
assertThrows(NullPointerException.class,
new MyObject().doSomething(null, UTF_8));
assertThrows(NullPointerException.class,
new MyObject().doSomething("", null));
是否有任何用于模拟一般非空值的库/方法?
我试过Mockito.mock,它似乎会为一些无效类型抛出异常,因为它实际上可以模拟。
更新
通过user2004685的回答,现在,我很好奇我是否可以像这样使用anyString或any(Class)。
assertThrows(NullPointerException.class,
new MyObject().doSomething(null, any(Charset.class)));
assertThrows(NullPointerException.class,
new MyObject().doSomething(anyString(), null));
【问题讨论】:
标签: java unit-testing mocking mockito