TDD 이벤트 스케줄러에서 작업하고 아래 클래스에 테스트 프로젝트를 작성합니다.생성자 테스트 방법
는 생성자의 논리
public class TechDay
{
public Session MorningSlot { get; set; }
public Session EveningSlot { get; set; }
public TechDay()
{
this.MorningSlot = new Slot();
this.EveningSlot = new Slot();
this.MorningSlot.Sessions= new List<Session>();
this.EveningSlot.Sessions= new List<Session>();
this.ConfigureEventSettings();
}
protected virtual void ConfigureEventSettings()
{
CultureInfo provider = CultureInfo.InvariantCulture;
this.MorningSlot.StartTime = DateTime.ParseExact("9:00 AM", "h:mm tt", provider);
this.MorningSlot.EndTime = DateTime.ParseExact("12:00 PM", "h:mm tt", provider);
this.EveningSlot.StartTime = DateTime.ParseExact("1:00 PM", "h:mm tt", provider);
this.EveningSlot.EndTime = DateTime.ParseExact("5:00 PM", "h:mm tt", provider);
}
}
시험 방법에 대한 시험 방법을 쓰기로했다
[TestMethod]
public void CheckMorningSlot()
{
TechDay techday=new TechDay();
Assert.IsNotNull(techday.MorningSlot);
}
[TestMethod]
public void CheckEveningSlot()
{
TechDay techday=new TechDay();
Assert.IsNotNull(techday.EveningSlot);
}
[TestMethod]
public void CheckEveningSlotSessions()
{
TechDay techday=new TechDay();
Assert.IsNotNull(techday.EveningSlot.Sessions);
}
[TestMethod]
public void CheckMorningSlotSessions()
{
TechDay techday=new TechDay();
Assert.IsNotNull(techday.MorningSlot.Sessions);
}
내가 생성자에서 다른 매개 변수 초기화를 확인하기 위해 다른 방법을 쓸 필요합니까? 또한 생성자가 다른 메소드를 호출하지는 않습니다.
이 코드의 테스트 방법을 작성하는 가장 좋은 방법은 무엇입니까?
생성자에서 가상 메소드 호출은 좋지 않습니다. – Tilak
@Tilak, 다른 conf 이벤트도 TechDay를 상속하고 시작 및 종료 시간을 변경할 수 있기 때문에 방금 가상으로 해당 메서드를 만들었습니다. 예 : TechNights. 무엇이 가장 좋은 수제인가? – Billa
Billa, 기본 생성자, 파생 생성자 및 생성자 내부에서 가상 메서드 사이의 호출 순서를 올바르게 호출 할 수 있고 각 호출시 초기화 될 필드와 초기화되지 않는 필드는 괜찮습니다. –