I have a method that takes object as parameter
Method Signature
IEnumerable<TResult> ExecuteSql<TResult>(string sql, object param)
Method Call
string query ="select * from table";
var data = _Executor.ExecuteSql<ObjectToReturn>(query,
new
{
CustomerID = customerId,
AnotherId1= id2,
AnotherId2 = id3
});
Unit Test
Mocked it using below example 1 does NOT work( does NOT return stubbed return object.)
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 } });
this works( does return stubbed return object.)
2
_procExecutor.Stub(x => x.ExecuteSql<ObjectToReturn>(Arg<string>.Is.Anything,
Arg<object>.Is.Anything)).Return(new List<ObjectToReturn>() { new ObjectToReturn() { id = 100 } });
But i want to make sure that right parameter was passed to right fields so i stubbed my method like #1, but it does not return stubbed return object.
What am i doing wrong with example 1?
Aucun commentaire:
Enregistrer un commentaire