Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 断言使用方法中更改的对象调用了方法_Unit Testing_Mocking_Rhino Mocks - Fatal编程技术网

Unit testing 断言使用方法中更改的对象调用了方法

Unit testing 断言使用方法中更改的对象调用了方法,unit-testing,mocking,rhino-mocks,Unit Testing,Mocking,Rhino Mocks,这就是我要测试的方法: public void Set1(ViewModelA viewModelA) { var viewModelB = new ViewModelB { FirstName = viewModelA.FirstName, LastName = viewModelB.LastName } service.Set2(viewModelB); } 如何断言传递给service.Set2的viewModelB实例具有从viewMod

这就是我要测试的方法:

public void Set1(ViewModelA viewModelA)
{
   var viewModelB = new ViewModelB
   {
      FirstName = viewModelA.FirstName,
      LastName = viewModelB.LastName
   }
   service.Set2(viewModelB);
}

如何断言传递给service.Set2的viewModelB实例具有从viewModelA映射的属性值,并且Set2将viewModelB作为参数?

假设您模拟了
服务
实例,您应该能够执行以下操作:

service.AssertWasCalled(s => s.Set2(
  Arg<ViewModelB>.Matches(b =>
    b.FirstName == "TheFirstName" && b.LastName == "TheLastName"
  )
));
service.assertwastcalled(s=>s.Set2(
参数匹配(b=>
b、 FirstName==“TheFirstName”和&b.LastName==“TheLastName”
)
));
本质上,您所做的是断言调用了
Set2
方法,并为其提供了一个名和姓与您期望的相符的
ViewModelB
实例