这是我从头开始编写的第一个单元测试。我想测试5个条件(body()
,Member
,MeetingActivity
,ServiceActivity
和LetterActivity
)。我使用了eclipse快捷方式来生成JUnit测试用例。我已经阅读了有关JUnit测试的文章,但仍需要一些指导。到目前为止,这就是我所拥有的。
如何调用测试条件的方法?
ReceiptActivity
这是课程:
@Test
public void testBuild() {
Member memberActivity(String memberId) {
Member activity = new Member();
activity.setDeliveryType("Some Delivery Type");
activity.setDocumentType("Some Document Type");
return activity;
}
}
我希望100%的覆盖率。
答案 0 :(得分:1)
覆盖所有分支的最简单方法是为类提供特定类型的模拟。
Java世界中有许多我喜欢的Mockito
模拟框架当您必须为每个 Activity 子类指定一个Mock时。
例如
Member memberMock = Mockito.mock(Member.class);
,对于在此模拟程序上调用的每个函数,您都应指定一个返回值,可以像这样在生成的 EventPayload 上进行检查
when(memberMock.getId()).thenReturn(4711);
检查Member分支的测试的简短版本如下:
Member memberMock = Mockito.mock(Member.class);
when(memberMock.getId()).thenReturn(4711);
//[...] here are the other calls mocked [...]
MessageBuilder messageBuilder = MessageBuilder();
EventPayload testSubject = messageBuilder.build(memberMock)
assertEquals(testSubject.id, 4711)
//[...] other asserts [...]
您还可以考虑重构类以获得更好的体系结构和更好的可测试性,但这超出了这种解释