【发布时间】:2016-05-05 16:49:43
【问题描述】:
我有一个以对象为参数的方法
方法签名
IEnumerable<TResult> ExecuteSql<TResult>(string sql, object param)
方法调用
string query ="select * from table";
var data = _Executor.ExecuteSql<ObjectToReturn>(query,
new
{
CustomerID = customerId,
AnotherId1= id2,
AnotherId2 = id3
});
单元测试
使用下面的示例 1 模拟它不起作用(不返回存根返回对象。)
1
_procExecutor.Stub(x => x.ExecuteSql<ObjectToReturn>(Arg<string>.Is.Anything,
Arg<object>.Is.Equal(new
{
CustomerID = customerId,
AnotherId1 = 10,
AnotherId2 = 11
}))).Return(new List<ObjectToReturn>() { new ObjectToReturn() { id = 100 } });
这有效(确实返回存根返回对象。)
2
_procExecutor.Stub(x => x.ExecuteSql<ObjectToReturn>(Arg<string>.Is.Anything,
Arg<object>.Is.Anything)).Return(new List<ObjectToReturn>() { new ObjectToReturn() { id = 100 } });
但我想确保将正确的参数传递给正确的字段,所以我像 #1 一样对我的方法进行存根,但它不返回存根返回对象。
我在示例 1 中做错了什么?
【问题讨论】:
标签: c# unit-testing rhino-mocks