【发布时间】:2014-04-16 04:36:20
【问题描述】:
我正在为我们的大型企业应用程序构建一个业务层,而我们目前正在进行的单元测试不到 500 个。场景是我们有两个public 方法,public AddT(T) 和public UpdateT(T),它们都对private AddOrUpdateT(T) 进行内部调用,因为两者之间的许多核心逻辑是相同的,但不是全部;它们是不同的。
因为它们是单独的公共 API(不管私有实现),我为每个 API 编写了单元测试,即使它们是相同的。这可能看起来像
[TestMethod]
public void AddT_HasBehaviorA()
{
}
[TestMethod]
public void UpdateT_HasBehaviorA()
{
}
目前对于这个特定的业务对象,大约有 30 个用于添加的单元测试和 40 个用于更新的单元测试,其中 30 个更新测试与添加测试相同。
这是正常的,还是我应该将常见的行为抽象到一个单独进行单元测试的公共辅助类中,并且这两个 API 只使用该辅助类而不是具有实现的私有方法?
什么是这些情况的最佳做法?
【问题讨论】:
-
另一种选择:您可以将其设为内部帮助程序类,并使用
InternalsVisibleTo。
标签: c# .net unit-testing tdd