我有一个私人方法如下。 我该如何对这种私有方法进行单元测试?
是否有可用于测试这种私有方法的模式?
private ICart GetCart(ICart cart, IEnumerable<ILine> lines)
{
var discountedCart = new Cart()
{
Company = cart.Company,
DiscountedSubtotal = cart.DiscountedSubtotal,
Discounts = cart.Discounts,
DiscountValue = cart.DiscountValue,
Id = cart.Id,
Items = cart.Items,
};
var validItems = GetValidItems(discountedCart.Items, lines);
discountedCart.Items.Clear();
discountedCart.Items = validItems.ToList();
return discountedCart;
}
答案 0 :(得分:2)
单元测试用于测试代码的公共接口,因此当私有实现发生更改时,您可以运行测试并确保它对外部世界仍然有效。因此,不显式地测试您的私有方法。
您测试公共方法。并且您创建了输入数据,因此您的方法会以您想要的方式受到影响。这样你就可以隐式地测试它。如果它发生变化,你的测试可以保持不变。