【发布时间】:2015-04-06 12:56:19
【问题描述】:
如果我有我想要检查的方法,并且出于某种原因,我想将测试用例分成 2 个单独的用例,我很乐意这样做:
[Test]
public void EditCustomerShouldReturnExceptionWhenCustomerIsNotCreated()
{
var c = new CustomerViewModel();
_customerRepositoryMock.Update(Arg.Any<Customer>()).Returns(x => { throw new Exception(); });
Assert.Throws<Exception>(() => _customerService.EditCustomer(c));
}
[Test]
public void EditCustomerShouldReturnTrueWhenCustomerIsCreated()
{
var c = new CustomerViewModel();
_customerRepositoryMock.Update(Arg.Any<Customer>()).Returns(true);
Assert.IsTrue(_customerService.EditCustomer(c));
}
但这里的问题是,当第一个测试用例通过时。更新返回值是一个异常,所以当第二个测试用例想要获取返回值时,它也得到了 new Exception();作为返回值?为什么会这样?如何覆盖相同方法的返回值?
【问题讨论】:
标签: c# asp.net-mvc model-view-controller nunit nsubstitute