0

在过去的几天里,我一直在努力编写一些测试来检查我的某些类的反序列化代码是否正常工作。

我有一个 REST 服务类的 java 包,它通过 Retrofit 与我们的 API 进行通信。我的想法是使用 Robolectric FakeHttpLayer 来提供某些响应并编写一组测试来检查我的服务类是否有效地从 JSON 响应创建模型对象。

  • robolectric 似乎没有拦截网络调用(即我总是从我们的 API 获取实时数据)。我不确定为什么会这样。
  • 有没有其他方法来测试我到目前为止所写的内容?对我来说,测试这一层非常重要,所以编写我们应用程序逻辑层的人有一些可靠的东西可以合作,而我则开始处理应用程序的其他部分。

谢谢!

4

1 回答 1

4

分别测试这些!

  1. 应使用您选择的序列化机制直接测试序列化。

    例如,如果您使用的是 JSON 和 Gson,则具有您反序列化并验证其结果的罐装 JSON 字符串。

  2. 可以使用您在测试中使用的 Retrofit 接口的假实现来测试基于网络响应的行为,而不是调用RestAdapter.create.

    class FakeFoo implements Foo { // Foo is your Retrofit interface
      @Override public FooResponse doSomething(FooRequest request) {
        return new FooResponse("Fake", "Data");
      }
    }
    
于 2014-01-26T09:39:02.770 回答