我想让我的脑袋围绕moq和mvc。我已经设置了一个moq并为其添加了一个有效的安装程序。添加一个方法来设置一个Moq测试
我的测试调用我的界面。
var id = 2;
var customer = new Customer()
{
CustomerId = 2,
FirstName = "Tomas",
LastName = "Smith"
};
var moq = new Mock<ICustomerRepository>();
moq.Setup(x => x.Find(id, 1234))
.Returns(Task.FromResult(customer));
var controller = new MyController(moq.Object);
var result = await controller.Get(id);
现在,在我的获取操作中,我打电话给我的存储库以获取此案例中的一位客户。但我需要传入一个额外的参数,这是一个int
var customer = await _repository.FindAsync(customerid, GetSourceId());
我怎样才能moq GetSourceId()返回一个int?而实际上并不需要调用我知道的方法,因为它从请求头中提取数据会失败?
谢谢Brian。是的,我认为会有这样的缺点。 –
对不起布赖恩我以为我有,但我没有。所以我使用类似于你的例子'var ctlr = new Mock(moq.Object); ctlr.Setup(i => i.GetSourceId())。设置GetSourceId。但是,我打算如何设置我想要调用的操作? –
更正,我使用你的例子包含了一个上面的代码片断,这个代码片段适用于我。调用对象的方法调用原始方法没有问题。上述解决方案与我的几乎完全相同。 –