如何处理外部类型?

时间:2016-03-11 06:09:48

标签: java unit-testing architecture domain-driven-design

假设我有一些需要与第三方API通信的项目。它使外部类型分散在我的代码中的任何地方。甚至我的测试用例也需要导入这些类型。

现在假设我有一个编组服务,将外部类型转换为某些DTO;我需要一个测试来验证我的服务行为,因为我需要外部类型的文本夹具。

class Marshalling {
  private Marshalling() {}

  static Api.LineItemRequest requestToProto(LineItem lineItem) {
    SomeBuilder builder = SomeClass.newBuilder()
        .setType(lineItem.getLineItemType().toString())
        .setStatus(lineItem.getStatus().toString());
    return builder.build();
  }
}

现在,外部类型不容易创建。我该怎么办?我应该为我的服务提供一些虚拟类型吗?

对类型的引用是here

1 个答案:

答案 0 :(得分:3)

如果难以创建外部类型,请继续使用模拟(EasyMockMockito等),但如果可能的话,我会尝试创建真实对象。尝试为您不关心的所有内容传递空值。它看起来像对象有一个无参数的构造函数,然后是一个bean API,所以你应该能够构造它,然后只需设置你认为必要的位。