如何处理外部类型?

How to deal with external type?

假设我有一些项目需要与第三方 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

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