如何使用JUnit为此类编写单元测试?

时间:2019-07-02 15:39:17

标签: java unit-testing junit

这是我从头开始编写的第一个单元测试。我想测试5个条件(body()MemberMeetingActivityServiceActivityLetterActivity)。我使用了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%的覆盖率。

1 个答案:

答案 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 [...]

您还可以考虑重构类以获得更好的体系结构和更好的可测试性,但这超出了这种解释