C# 如何在Rhino Mocks中将项目添加到列表中
我有这样的方法(这是IMyInteface的一部分):C# 如何在Rhino Mocks中将项目添加到列表中,c#,rhino-mocks,C#,Rhino Mocks,我有这样的方法(这是IMyInteface的一部分): interface IMyInterface { void MyMethod(IList<Foo> list); } var mocks = new MockRepository(); var myMock = mocks.StrictMock<IMyInterface>(); var myList = new List<Foo>(); var cUT = new ClassUnderTes
interface IMyInterface
{
void MyMethod(IList<Foo> list);
}
var mocks = new MockRepository();
var myMock = mocks.StrictMock<IMyInterface>();
var myList = new List<Foo>();
var cUT = new ClassUnderTest();
cUT.Bar = myMock;
myMock.MyMethod(myList);
//How can I add some items to myList in the mock?
mocks.Replay(myMock);
var result = cUt.AMethod();
Assert.AreEqual(True, result);
接口IMyInterface
{
作废MyMethod(IList列表);
}
我有一个被测试的班级:
class ClassUnderTest
{
IMyInterface Bar {get; set;}
bool AMethod()
{
var list = new List<Foo>();
Bar.MyMethod(list);
return list.Count()>0;
}
测试中的类
{
imy接口条{get;set;}
bool-AMethod()
{
var list=新列表();
Bar.MyMethod(列表);
返回list.Count()>0;
}
我对Rhino Mock的测试如下所示:
interface IMyInterface
{
void MyMethod(IList<Foo> list);
}
var mocks = new MockRepository();
var myMock = mocks.StrictMock<IMyInterface>();
var myList = new List<Foo>();
var cUT = new ClassUnderTest();
cUT.Bar = myMock;
myMock.MyMethod(myList);
//How can I add some items to myList in the mock?
mocks.Replay(myMock);
var result = cUt.AMethod();
Assert.AreEqual(True, result);
var mocks=new MockRepository();
var myMock=mocks.StrictMock();
var myList=新列表();
var cUT=new ClassUnderTest();
cUT.Bar=myMock;
myMock.MyMethod(myList);
//如何在模拟中向myList添加一些项目?
mocks.Replay(myMock);
var结果=cUt.AMethod();
断言.AreEqual(真,结果);
现在如何在模拟中向myList添加一些项目?试试以下方法:
myMock.Stub(methodInv => methodInv.MyMethod(new List<Foo>()).IgnoreArguments()
.WhenCalled(invocation => (invocation.Arguments[0] as IList<foo>).Add(new Foo());
myMock.Stub(methodInv=>methodInv.MyMethod(new List()).IgnoreArguments()
.WhenCalled(invocation=>(invocation.Arguments[0]作为IList).Add(new Foo());
因此,第一个lambda函数启用该方法;第二个函数指定该方法中发生的事情
我还没有测试过这个,所以请告诉我它是否错误!不清楚您正在测试的对象是什么。这就是我一直在寻找的答案!谢谢。解决方案很有效。很好