【发布时间】:2015-10-27 09:16:51
【问题描述】:
我被要求单元测试一些遗留代码。
目前,代码在方法调用和使用的类型方面都与第三方库紧密耦合。
我正计划以 Façade 设计模式 的形式围绕库编写一个 包装器,这将有助于可测试性,为其余部分创建更简洁的界面代码并允许我在将来根据需要换出库。
这在方法调用是 void 返回类型 的情况下工作得很好,因为库函数是自包含的。但是如果现有代码使用库特定类型怎么办?一个例子在这里:
LibrarySpecificType[] myVar = wrappedLibrary.DoX();
虽然我在上面的例子中包装了我的库调用,但它仍然返回一个库特定的类型,所以它仍然有些耦合。
有人知道解决这个问题的方法吗?
【问题讨论】:
标签: unit-testing junit mocking refactoring tdd