我只是从嘲笑开始,我正在尝试一些我认为应该很简单的东西。
我有一个类可以读取 Google 日历数据。首先,它创建一个CalendarService
对象,然后调用Query
该对象,接收 aEventFeed
并迭代 的 Item 集合AtomEntryCollection
。我希望这一切都被嘲笑,因为我不希望我的测试发送任何网络请求。我试着用
var service = MockManager.Mock<CalendarService>();
var events = MockManager.MockAll<EventFeed>();
var entries = MockManager.MockAll<AtomEntryCollection>();
service.ExpectAndReturn("Query", events.MockedInstance);
events.ExpectGet("Entries", entries.MockedInstance);
entries.ExpectGetAlways("Count", 3);
但是一旦service.Query()
使用从该方法返回的对象,我的测试就会失败。我知道在第 5 行entries.MockedInstance
中仍然为 null,因此将ExpectAndReturn
null 记录为返回值 - 那我该怎么办?如何设置模拟以返回有效的模拟对象,而不是空值?
注意 - 我正在编写一个 .NET 2.0 项目,所以我不能使用 Isolator 功能(我认为)。那会帮助我吗?或者也许切换到 Rhino 或 MOQ 会更容易?