【发布时间】:2019-12-10 15:40:40
【问题描述】:
假设我有一个名为IOrderContainer的接口:
public interface IOrderContainer
{
ReadOnlyCollection<Order> Orders { get; }
void AddOrder(Order order);
void RemoveOrder(Order order);
Order GetOrderById(int orderId);
}
该实现保留了一个私有的订单集合,该集合由公共只读集合Orders公开
AddOrder 和 RemoveOrder 修改私有集合。
如果接口上没有公共成员来初始化私人订单集合,我将如何对 GetOrderById 和 RemoveOrder 方法进行单元测试?
明显的方法是调用AddOrder一堆次来填充私有集合,但是我觉得它违反了单元测试的定义,因为要测试RemoveOrder/GetOrderById,我们依赖另一个“单元” " - AddOrder.
我应该创建两个构造函数吗?一个无参数构造函数和另一个接收集合并将其分配给私有集合的构造函数。
【问题讨论】:
标签: c# unit-testing