나는 조롱/스터 빙/위장에 대해 많이 읽었으며 정신적 장애물에 여전히 부딪쳤다.Moq를 사용하는 MVP - 조롱 된보기로드
저는 MVP (Model View Presenter)를 "재미있는"체중 감량 추적 시스템으로 적응하려고합니다. 저는 자신의 Fatty McFatter-self를 위해 구축하고 있습니다. 나는 TDD & '이것에 의해 책'을 시도하고 있지만 많은 정신 블록을 때리고 실속합니다.
지금 내 발표자를 만들고 내 서비스 &보기를 조롱하고 있습니다. 다시주의 : 여기에 내 테스트의 서비스와보기 MOQ
[Test]
public void GetLog_WithExistingDate_ViewSetWithExistingLog()
{
WeightLogModel model = new WeightLogModel
{
EntryDate = DateTime.Now,
Waist = 42,
Weight = 242
};
service.Setup(x => x.GetLog(It.IsAny<DateTime>())).Returns(model);
presenter.Display(DateTime.Now);
IWeightLogView myView = view.Object;
Assert.AreEqual(model.Weight, myView.Weight);
}
으로 조롱하고 내 발표자에 -이 내 표시 방법 : 이제
public void Display(DateTime date)
{
var weightLog = service.GetLog(date);
if(weightLog == null) return;
View.EntryDate = weightLog.EntryDate;
View.Waist = weightLog.Waist;
View.Weight = weightLog.Weight;
}
- I 디스플레이로 디버깅 할 경우 호출되는 - 나는 weightLog가 내가 모의에서 설정 한 정확한 정보로 가득 차 있다는 것을 안다. 그러나 View.EntryDate, View.Waist 등을 설정한다고 가정하면 View 값이 변경되지 않습니다. 그들은 0 또는 0001/1/1을 유지합니다.
작동시키기위한 방법이 있습니까? 아니면 그냥 나쁜 시험입니까? 혼란스러워하고 있습니다.
답장을 보내 주셔서 감사합니다. 설치 과정에서 실제로 일어나지는 않았지만, 모의를 만드는 것은 전부이며, 조롱받은 서비스 및 조롱 한 시각을 가진 발표자입니다. 다른 설정에 관해서는 - 내가 테스트에서 가지고있는 WeightLogModel을 반환하도록 service.GetLog (날짜)를 설정하려고합니다. 제 생각에 그렇게하는 것은 제 발표자에서 WeightLogModel을 사용할 수있게 만드는 것입니다 - 조롱 한보기에 할당하는 것 - View.EntryDate = weightLog.EntryDate ... 여기서 weightLog는 테스트에서 설정되는 것입니다. .. 나는 내 머리가 어디 있는지에 대해 분명히 희망한다 ... 나는 내가 옳다고 말하지 않고있다. – ajwaka
위의 수정 사항을 참조하십시오. –