我使用MockRetrofit(改进2快照4)来模拟服务器apis。
NetworkBehavior networkBehavior = NetworkBehavior.create();
networkBehavior.setFailurePercent(1);
networkBehavior.setDelay(500, TimeUnit.MILLISECONDS);
MockRetrofit mockRetrofit = new MockRetrofit.Builder(retrofit)
.networkBehavior(networkBehavior)
.build();
BehaviorDelegate<FinderCommonApis> delegate = mockRetrofit.create(FinderCommonApis.class);
finderCommonApis = new MockFinderCommonApis(delegate);
我也在我的测试用例中使用这个模拟。我的测试用例因NetworkBehavior
而间歇性失败。它引入了导致间歇性故障的网络错误。我想完全避免这种网络错误,但看起来我不能完全避免它。我甚至试图将失败百分比设置为0,但它不允许。因此,我将最低可能值设置为1.他们在NetworkBehavior
中使MockRetrofit.Builder
成为可选项,但它提供了自己的默认NetworkBehavior
,这也会引入相同的网络错误。我检查了NetworkBehavior
代码,他们已经把它作为最终类,所以我不能覆盖它。我没想到要避免这个问题。
我只是想知道如何完全避免使用NetworkBehavior。
答案 0 :(得分:2)
我甚至尝试将失败百分比设置为0,但它不允许。
0是一个有效值,应该用于禁用所有失败。