如何对这种私有方法进行单元测试?

时间:2017-12-28 16:52:39

标签: c# .net unit-testing c#-4.0 xunit

我有一个私人方法如下。 我该如何对这种私有方法进行单元测试?

是否有可用于测试这种私有方法的模式?

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;
        }

1 个答案:

答案 0 :(得分:2)

你没有。

单元测试用于测试代码的公共接口,因此当私有实现发生更改时,您可以运行测试并确保它对外部世界仍然有效。因此,显式地测试您的私有方法。

您测试公共方法。并且您创建了输入数据,因此您的方法会以您想要的方式受到影响。这样你就可以隐式地测试它。如果它发生变化,你的测试可以保持不变。