鸭舌试图测试,它返回使用RhinoMocks 3.6ArgumentNullException与RhinoMocks 3.6
[TestMethod]
public void GetItems_Returns_ActionItemsList()
{
// arrange
var mockRepository = MockRepository.GenerateMock<IActionItemRepository>();
mockRepository.Stub(s => s.Select()).Return(GetFakeActionItems());
var service = new ActionItemQueueService(mockRepository);
// act
var actual = service.GetItems();
mockRepository.VerifyAllExpectations();
// assert
Assert.IsInstanceOfType(actual, typeof(IList<ActionItem>));
}
房地产simplle右一个简单的IList服务层的方法? GetFakeActionItems方法供参考;
internal IQueryable<ActionItem> GetFakeActionItems()
{
return new List<ActionItem> {
new ActionItem{
Id = 5,
ClientName = "Bank of American Corporation",
ActionNeeded = RequiredAction.Change,
RecordIndicator = "ROI",
RequestDate = DateTime.Now.AddDays(-3)
}
} as IQueryable<ActionItem>;
}
下面是测试中的类和方法...
public class ActionItemQueueService : IActionQueueService
{
private readonly IActionItemRepository _actionItemRepository;
public ActionItemQueueService(IActionItemRepository actionItemRepository)
{
_actionItemRepository = actionItemRepository;
if (_actionItemRepository == null)
{
throw new ArgumentNullException("ActionItemRepository");
}
}
public IList<Model.ActionItem> GetItems()
{
return _actionItemRepository.Select().ToList<Model.ActionItem>();
}
}
没有什么野生.... 当我运行我的测试,我得到一个ArgumentNullException当GetItems()方法被调用当_actionItemRepository.Select()触发。值不能为空。 参数名称:来源。
困惑和困惑,想知道如果有人有任何洞察到我失踪。
非常感谢!
你不是应该做一些像 fakeItems = GetFakeActionItems(); ...存根(...)。返回(fakeItems)?技术上是 – Mathias 2010-07-21 19:03:08
?当然。但是,对于使用相同的ArgumentNullException爆炸的测试方法并没有什么不同。 :( – 2010-07-21 19:08:46
是否有一个原因,你为什么传递null在MockRepository.GenerateMock(null)? –
Mathias
2010-07-21 19:09:22