我正在尝试为我的一个控制器方法编写测试方法。 这是控制器方法
public ActionResult LicenseDetails(Guid id)
{
var licenseDetails = _businessUnitRepository.GetLicenseDetails(id);
return View(licenseDetails);
}
这是我编写的测试,用于检查它是否调用存储库中的方法。
[TestMethod]
public void ModuleDetails_Action_Calls_GetLicenseDetails()
{
_mockBusinessUnitRepository.GetLicenseDetails(Arg<Guid>.Is.Anything);
_controller.LicenseDetails(Arg<Guid>.Is.Anything);
_mockBusinessUnitRepository.AssertWasCalled(x=>x.GetLicenseDetails(Arg<Guid>.Is.Anything));
}
我现在收到的错误是: 测试方法 AdminPortal.Tests.Controller_Test.Customer.BusinessUnitControllerTests.ModuleDetails_Action_Calls_GetLicenseDetails抛出异常: System.InvalidOperationException:在记录时在模拟方法调用中仅使用Arg。预期有1个参数,已经定义了3个。
Ps:我正在使用Rhino mock,我是这个测试用品的新手
答案 0 :(得分:0)
我认为这是在抱怨这条线:
_controller.LicenseDetails(Arg<Guid>.Is.Anything);
尝试传入实际值,而不是这样做:
_controller.LicenseDetails(Guid.NewGuid());