JMockit - 模拟需要集合的方法时发出警告
JMockit - warning when mocking methods that expect Collections
有没有办法让下面的 mock 在没有 Unchecked cast 警告的情况下工作:
new Expectations() {{
UrlService.addUrls((List<String>)any); result = expectedCandidates;
}};
UrlService.addUrls()
方法的签名是:
static List<Candidate> addUrls(List<String> urls)
试试这个:
new Expectations() {
{
UrlService.addUrls(withArgThat(new IsAnything<List<String>>())); result = expectedCandidates;
}
};
最好的替代方法是使用 T witnAny(T arg)
参数匹配器:
new Expectations() {{
UrlService.addUrls(withAny(new ArrayList<String>()));
result = expectedCandidates;
}};
或者,如果您的 IDE 支持,则在本地禁用代码检查。使用 IntelliJ,我可以写:
new Expectations() {{
//noinspection unchecked
UrlService.addUrls((List<String>) any);
result = expectedCandidates;
}};
...这真的可以。代码检查固然很好,但总有一些例外情况,可以禁用它们。
有没有办法让下面的 mock 在没有 Unchecked cast 警告的情况下工作:
new Expectations() {{
UrlService.addUrls((List<String>)any); result = expectedCandidates;
}};
UrlService.addUrls()
方法的签名是:
static List<Candidate> addUrls(List<String> urls)
试试这个:
new Expectations() {
{
UrlService.addUrls(withArgThat(new IsAnything<List<String>>())); result = expectedCandidates;
}
};
最好的替代方法是使用 T witnAny(T arg)
参数匹配器:
new Expectations() {{
UrlService.addUrls(withAny(new ArrayList<String>()));
result = expectedCandidates;
}};
或者,如果您的 IDE 支持,则在本地禁用代码检查。使用 IntelliJ,我可以写:
new Expectations() {{
//noinspection unchecked
UrlService.addUrls((List<String>) any);
result = expectedCandidates;
}};
...这真的可以。代码检查固然很好,但总有一些例外情况,可以禁用它们。