我想创建一个包含所有不同具体类型的对象的IList,所以:
var tasks = new List<ITask>();
foreach (string taskName in taskNames)
{
var task = MockRepository.GenerateStub<ITask>();
task.Stub(t => t.Name).Return(taskName);
tasks.Add(task);
}
return tasks;
问题是每个存根对象都是相同的具体类型。通常这很好,但我有一个案例,我想测试每个是不同的类型。在这种情况下,我可以以某种方式配置Rhino Mocks来执行此操作吗?
修改:
今天,“你必须做错的船员”已经生效。既然你们似乎认为我需要证明我的用例是合理的,那么你可以先回答我的问题,这就是我正在做的事情:
所以,我希望你能明白为什么我需要测试逻辑。到目前为止,我不得不编写自己的Stub工厂,该工厂由有限的ITask类型池产生。它有效,但我宁愿让Rhino Mocks为我做这件事。
答案 0 :(得分:3)
您可以添加ITask.Type
属性。
对接口背后的类型感兴趣的代码应该使用此属性而不是调用GetType()
。在您的测试中,控制Type
属性为任何给定的ITask
存根返回的内容变得微不足道。