关于单元测试:正确测试c#私有方法中的接口

Properly test interfaces in c# private methods

本问题已经有最佳答案,请猛点这里访问。

我是c#的新手。 我确实有一些测试javascript的经验。 我正在考虑评估这个测试,类似于检查一个方法,通过sinon与间谍调用。

但是,我并不确定要测试什么。 正如我所说,我对c#很新,并且正在进行测试以了解代码的工作原理。

这是我需要测试的私有方法

1
2
 private TicketResponse.PaymentType GetPaymentType(TicketResponse.FormOfPaymentCreditCard paymentType, VCR_DisplayRSTicketingInfosTicketingInfoTicketingTicketDataTourInfo tourInfo)
    {

我读到我测试了接口。 所以我正在测试这些方面的东西?

1
2
3
4
 public enum PaymentType
{
    CASH, CREDIT_CARD, NITP, TRAVEL_CREDIT, GIFT_CARD, JETBLUE_REWARDS, NONE, CHECK, EXCHANGE
}

任何见解都会非常有用,谢谢。


通常的测试方法是仅测试您的类的公共接口。 测试私有方法通常会创建脆弱的测试,并不一定会测试其他客户端类将使用的公共端点。

如果您只测试公共接口,则可以更轻松地更改详细信息/实现(在私有方法中)而不会破坏测试。


您无法测试私有方法,因为它在定义它的类之外是不可见的。

如果您希望您的方法可测试,则必须是公共的或具有公共包装器。

私有方法通常通过对调用它们的公共方法的测试来间接测试。