单元测试构建器对象的最佳做法?

时间:2019-06-18 23:52:07

标签: java android unit-testing junit

关于是否应该对setter / getter进行单元测试,存在着很大的争议。

示例 Should unit tests be written for getter and setters?

我相信构建器对象属于同一对话。我想了解单元测试生成器对象的最佳实践。这是我的想法。

i。确认可以创建构建器对象

ii。确认输出反映输入

iii。确认省略的构造将引发异常(如果需要)

此外,如果实例化另一个对象需要构建器对象,是否还创建一个测试以确认第二个对象使用给定的构建器实例化是否有意义?对我所缺少或应省略的任何批评都将受到赞赏。

@RunWith(AndroidJUnit4.class)
public class MyBuilderTest {

    private Context mContext;
    private ApiClient mApiClient;
    private Profile mProfileBuilder;
    private ProfilePojo mProfileSampleResponse;

    @Before
    public void setUp() {
        mContext = InstrumentationRegistry.getTargetContext();
        mProfileSampleResponse= new Gson().fromJson(Utils.getLocalJsonFile(mContext,
                R.raw.profile_info), ProfilePojo.class);
    }

    @Test
    public void checkLocalProfileResponse() {
        assertNotNull(mProfileSampleResponse);
    }

    @Test
    public void checkProfileBuilder() {
        mProfileBuilder  = new Profile.ProfileBuilder()
                .setFirstName(mProfileSampleResponse.firstName)
                .setLastName(mProfileSampleResponse.lastName)
                .isVerified(mProfileSampleResponse.isVerified)
                .create();

        assertNotNull(mProfileBuilder);
        assertNotNull(mProfileBuilder.getFirstName());
        assertNotNull(mProfileBuilder.getLastName());

        assertEquals(mProfileSampleResponse.isVerified, mProfileBuilder.getIsVerified);
        assertEquals(mProfileSampleResponse.firstName, mProfileBuilder.getFirstName);
        assertEquals(mProfileSampleResponse.lastName, mProfileBuilder.getLastName);
    }

    @Test
    public void checkApiClientBuilder() {
        mApiClient= new ApiClient(mContext, mProfileBuilder);

        assertNotNull(mApiClient);
    }

}

就我而言,我还需要测试请求和响应。我使用ProfileBuilder构建的配置文件信息可以传递到ApiClient中,ApiClient会向我提出请求。所有这些都应该属于一个测试类吗?

0 个答案:

没有答案