我如何在类中使用DataContext将消息写入表。我想断言,LINQ所写的表具有预期的消息计数。到目前为止我的情况是这样的。
var context = new MJustTestingDataContext();
MyMessagewriter writer = new MyMessageWriter(context);
var messageList = new List<MIncmoingMessage>();
MTable<MIncomingMessage> messageTable = new MTable<MIncomingMessage>();
messageTable.Bind(messagesLinqList.AsQueryable());如果我在被测试的类中使用这段代码和xUnit,我将得到这个异常
Microsoft.Moles.Framework.Moles.MoleNotImplementedException: DataContext.Dispose() was not moled.这里遗漏了什么,以及如何在鼹鼠上实现DataContext.Dispose()?我用的是没有佩克斯的单独鼹鼠。
发布于 2010-12-08 16:47:42
我很难理解你的测试在做什么。昨天我不得不做一些类似的事情,所以我将分享我的经验。首先,重要的是要明白,您不需要使用所有的MoleTypes来测试您的代码--您只需要使用Moles将代码的某些部分重定向到lambda表达式。给出了这样做的方法:
我想重定向1和3,使其不使用数据库。例如,我可以通过以下代码重定向对SubmitChanges (3)的调用:
bool hitSubmitChanges = false;
int changeCount = 0;
IList<object> updates = null;
// more code here...
// redirect DataContext.SubmitChanges() to a lambda to catch updates
MDataContext.AllInstances.SubmitChanges = (c) =>
{
changeCount = c.GetChangeSet().Updates.Count;
updates = c.GetChangeSet().Updates;
hitSubmitChanges = true;
};这(以及获取用户的调用)将是我在测试中使用的唯一Moletypes。其余的都是正常的。然后,我可以使用断言来检查changeCount、更新和hitSubmitChanges的值。
https://stackoverflow.com/questions/3685589
复制相似问题