unit testing - How to arrange and assert MustBeCalled for property setter in JustMock -


i have mocked class property has , set. code under test calls setter assign connection string value. test code mocks class contains property , add mustbecalled when arrange mock.

viewmodel code:

public class clientviewmodel {     private readonly imgmtdataprovider dataprovider;      public clientviewmodel(imgmtdataprovider dataprovider)     {         this.dataprovider = dataprovider;                 }     private string clientconnectionstring;     public string clientconnectionstring     {         { return clientconnectionstring; }          set         {             clientconnectionstring = value;             if (dataprovider != null)                 dataprovider.clientconnectionstring = value;         }     } } 

test code:

//arrange const string connectionstring = "this connectionstring"; var mockeddataprovider = mock.create<imgmtdataprovider>(); mock.arrange(() => mockeddataprovider.clientconnectionstring).mustbecalled();  //act var testviewmodel = new clientviewmodel(mockeddataprovider); testviewmodel.clientconnectionstring = connectionstring;  //assert var callcount = mock.gettimescalled(() => mockeddataprovider.clientconnectinstring); assert.istrue(callcount > 0); 

my mock.arrange(...).mustbecalled(); appears applied getter, not setter. so, when call mock.gettimescalled(...), returns 0. need apply mustbecalled setter instead of getter. want assure dataprovider's connectionstring getting set when viewmodel's connection string gets set. how tell justmock track how many times mocked setter called?

setters arranged using mock.arrangeset() method, so:

mock.arrangeset(() => mockeddataprovider.clientconnectionstring = arg.anystring).mustbecalled(); .... mock.assert(mockeddataprovider); // assert expectations on mock 

you can use mock.assertset() alternative arrangeset().mustbecalled() combo.

and finally, there's mock.gettimessetcalled() method getting number of times setter called.

check out documentation on property mocking examples.


Popular posts from this blog