有没有类似"really nice mock"的东西?



如果您不想为所有内容定义行为并且不想限制对该模拟的调用,那么 EasyMock 和 Mockito 中的漂亮模拟都是一件好事。

但对我来说,它们有一个很大的缺陷:如果方法的返回类型是Object或从Object继承的任何内容,它们总是返回null

我想知道一个或两个框架中是否有某些东西可以为返回Optional<?>的方法返回Optional.empty(),或者为返回List<?>的方法返回Collections.emptyList()等等......

我还找不到这样的东西。

默认情况下,Mockito 的当前版本返回空列表和可选。AFAIK 这是 2.0 版的新功能(至少是可选)。以下测试在 Mockito 2.27.0 中成功。

class MockitoTest
static class SomeType {
Optional<String> headline;
List<String> texts;
Optional<String> getHeadline() {
return headline;
}
List<String> getTexts() {
return texts;
}
}
@Test
void mock_returns_empty_List_by_default() {
SomeType o = mock(SomeType.class);
List<String> texts = o.getTexts();
assertEquals(emptyList(), texts);
}
@Test
void mock_returns_empty_Optional_by_default() {
SomeType o = mock(SomeType.class);
Optional<String> headline = o.getHeadline();
assertFalse(headline.isPresent());
}
}

相关内容

  • 没有找到相关文章

最新更新