我读过很多关于嘲弄/磕碰/伪造 - 并仍然打击我的心理障碍。MVP与Moq - 加载嘲讽视图
我正在尝试将MVP(Model View Presenter)与一个“乐趣”减肥追踪系统相适应,我正在为自己的Fatty McFatter自创。我试图通过这本书'TDD &',但打了很多心智块,并失去了作用。
我在建立我的演示者并嘲笑我的服务&查看此刻。下面是我的测试:再次指出:服务和查看被嘲笑与起订量
[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;
}
现在 - 如果我调试的显示器被称为 - 我看到weightLog充满了我在模拟中设置的正确信息。但是,因为它假设设置View.EntryDate,View.Waist等 - 视图值永远不会改变。他们保持零或0001/1/1
有没有办法让它工作?或者这只是一个糟糕的测试,我在混乱中挣扎?
感谢您的答复 - 不是真的发生了很多在设置 - 创造嘲笑是所有与嘲笑的服务与嘲笑查看演示。 至于其他设置 - 我想设置的service.GetLog(日)返回WeightLogModel我已经在测试中。 我的想法是这样 - 会提出这样的WeightLogModel提供我的演讲 - 分配给我的嘲笑观点 - 在View.EntryDate = weightLog.EntryDate ....在这种情况下weightLog是什么,是在测试设置.. .. 我希望我清楚到我的头......我不是说我是正确的 - 这是我的想法是什么,但。 – ajwaka
查看我上面的编辑。 –