我正在使用Nunit
测试Rhino-Mocks
进行代码单元测试
我的代码如下;
_mockHandler.Expect(m => m.DoSomething(Arg<string>.Is.Anything, Arg<string>.Is.Anything))
.Return(myList["XXX"]);
myList
的内容正在从正在运行的线程更新。一旦上述行执行myList["XXX"]
的值为空。但是在这个方法时,从代码myList["XXX"]
调用的是一个值。
有没有办法配置,请在调用方法时参考实际值?
答案 0 :(得分:3)
在运行时而不是记录时返回值的方法是使用 Product (productID, productName, productBrand, productQuantityinstock,
productQuantitySold, productCost, productcategoryID*,
adminstaffID* ,)
Admin Staff (adminstaffID, adminstaffName, adminstaffUserName
adminstaffPassword,)
Product Category (productcategoryID, productcategoryName,)
Product_Customer (productID*, customerID*)
Customer ( customerID, customerName, customerAddress, customerContact)
Tech Staff ( techstaffID, techstaffUsername, techstaffPassword)
Service (serviceID, serviceType, serviceCost, serviceStatus,
serviceDetails, customerID*, techstaffID*)
或WhenCalled
方法。
在您的情况下,似乎Do
是正确的解决方案:(如果您想知道何时使用Do
或Do
阅读my answer)
WhenCalled
在上面的示例中,_mockHandler.Expect(m => m.DoSomething(Arg<string>.Is.Anything,
Arg<string>.Is.Anything))
.Do(new Func<string,string,string>((s, s1) => myList["XXX"]));
将在您致电(s, s1) => myList["XXX"])
时执行,DoSomething
中的值将会返回。