2016-07-21 7 views
0

저는 C#을 처음 사용합니다. 나는 자바 스크립트를 테스트 한 경험이있다. 나는이 시험을 사인 (sinon)을 통해 간첩으로 호출 할 방법을 확인하는 것과 비슷한 평가를하고있었습니다.C# 개인 메소드의 인터페이스를 올바르게 테스트하십시오.

그러나 나는 무엇을 테스트해야할지 확실하지 않습니다. 필자는 C#을 처음 접했을 때 코드가 작동하는 방식에 대한 느낌을 얻기 위해 테스트를 수행하고 있다고 언급했습니다.

여기서 I는 I는 I의 인터페이스를 테스트하는 것이 판독

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

테스트해야하는 전용 메소드이다. 그래서 나는이 라인을 따라 뭔가를 테스트하고 있습니까?

public enum PaymentType 
{ 
    CASH, CREDIT_CARD, NITP, TRAVEL_CREDIT, GIFT_CARD, JETBLUE_REWARDS, NONE, CHECK, EXCHANGE 
} 

모든 통찰력은 매우 도움이 될 것입니다.

+1

일반적인 합의는 예상되는 동작에 대한 공용 메서드를 테스트해야하는 단위 테스트입니다. 관련하는 private 메소드는 public 메소드를 사용해 테스트됩니다. –

+0

다음은 내 질문에 대한 업데이트입니다. http://stackoverflow.com/questions/38514315/what-to-test-for-in-private-methods-on-c. – Winnemucca

답변

2

일반적인 테스트 방법은 공용 인터페이스 만 테스트하는 것입니다. 개인 메서드를 테스트하면 일반적으로 취성 테스트가 만들어지며 다른 클라이언트 클래스가 사용할 공용 끝점을 반드시 테스트하지는 않습니다.

공용 인터페이스 만 테스트하는 경우 테스트를 위반하지 않고 개인 방법으로 세부 정보/구현을보다 쉽게 ​​변경할 수 있습니다.

+0

좋습니다. 메서드가 호출되었는지 확인하기 위해 C#의 스파이 라인을 따라 생각했습니다. 나는 나의 질문을 더 업데이트 할 것이다. 공용 인터페이스와 관련하여 몇 가지 질문이 있습니다. 감사합니다 – Winnemucca

+0

@stevek 다른 질문이 있으시면, 중복으로 표시되어 있으므로 새로운 질문을 시작하겠습니다. – Oleksi

+0

자, 여기로 옮겼습니다. http://stackoverflow.com/questions/38514315/what-to-test-for-in-private-methods-on-c – Winnemucca

0

개인 클래스가 정의 된 클래스 외부에서 보이지 않기 때문에 개인 메서드를 테스트 할 수 없습니다.

메서드를 테스트 할 수있게하려면 공개 또는 공용 래퍼가 있어야합니다.

개인 메서드는 일반적으로이를 호출하는 공용 메서드에 대한 테스트를 통해 간접적으로 테스트됩니다.