jeudi 5 mai 2016

Rihno Stub not working with Arg

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