테스트중인 큰 메서드 내부에서 몇 가지 메서드와 조건을 빠져 나가거나 무시하는 테스트를 작성하는 방법입니다. 문이 내 방식으로 테스트 할 경우 메서드 내부의 일부 메서드와 테스트중인 메서드의 일부 조건을 생략하여 단위 테스트 작성
public bool IsValid(int id)
{
var details = _myService.GetDetails(id); // This line should be avoided in test
var doctorDetails = _myService.GetDoctorDetails("AUS"); // This needs to be executed
if(details.Name == "Ab") // This if I dont want to be part of my test
{
// Do something
}
if(doctorDetails !=null)
{
// Code to test
}
}
내 코드를 편집
, 나는 단지 두 번째가 필요합니다예를 들어, 나는 아래에이 방법을 가지고있다. 위에 표시된 것처럼 서비스에서 데이터를 가져 오는 것에 대해 doctorDetails의 가치를 해독해야합니다. 왜냐하면 서비스에서 가져 오기 위해 세부 정보가 있어야하기 때문입니다. 그러나 그렇지 않습니다. 그렇지 않은 경우 모의하고 DB에 세부 정보를 저장하고이 서비스를 호출하면됩니다. 지금은 원하지 않습니다.
클래스 외부에서 '_myService'에 액세스 할 수 있습니까? 당신은 그것을 조롱하고,'IsValid'가 살고있는 수업에 그것을 주입시킬 수 있습니까? –
@GrantWinney : 나는 테스트에 초보입니다. 제 요구 사항에 대한 테스트 작성 방법은 코드 – Learner
으로 도와주세요. @GrantWinney : 제 간단한 질문은 doctordetails의 bvalue를 서비스에서 가져 오는 것보다 두 번째 if 문만 테스트하십시오. Doctordetails는 문자열 값입니다. – Learner