C# 使用Rhino模拟来单元测试删除功能
我正在使用Rhino mocking进行单元测试,以测试删除传输的方法。但是我不确定如何测试它。下面是我所拥有的,但它失败了Assert.AreEqual失败了,因为返回的结果是异常对象引用未设置为对象的实例C# 使用Rhino模拟来单元测试删除功能,c#,unit-testing,rhino-mocks,C#,Unit Testing,Rhino Mocks,我正在使用Rhino mocking进行单元测试,以测试删除传输的方法。但是我不确定如何测试它。下面是我所拥有的,但它失败了Assert.AreEqual失败了,因为返回的结果是异常对象引用未设置为对象的实例 /// <summary> /// Test Case: to /// </summary> [TestMethod] public void Should_DeleteTransload() { //ex
/// <summary>
/// Test Case: to
/// </summary>
[TestMethod]
public void Should_DeleteTransload()
{
//expect
mockTransloaderRepository.Expect(r => r.GetOneAsync(x => x.Id == ostTransloader5.Id)).IgnoreArguments().Return(Task.FromResult(ostTransloader5));
mockOstTransloaderService = MockRepository.GenerateMock<OstTransloaderService>(mockTransloaderRepository, mockAuditContext);
mockTransloaderRepository.Expect(r => r.AddAsync(ostTransloader5)).IgnoreArguments().Return(Task.Run(() => true));
mockTransloaderRepository.Expect(r => r.AddAsync(ostTransloader4)).IgnoreArguments().Return(Task.Run(() => true));
List<OstTransloader> ostTransloaders = new List<OstTransloader>() { ostTransloader4 };
mockTransloaderRepository.Expect(t => t.DeleteAsync(ostTransloader5)).IgnoreArguments().Return(Task.Run(() => true));
////act
var result = mockOstTransloaderService.PurgeTransloadShipmentMaterial(transloadIds);
//// assert
Assert.IsNotNull(result);
Assert.AreEqual(ostTransloaders, result);
}
如何测试是否删除了正确的翻译?两个免责声明:1我在几年前从Rhino Mocks迁移到Moq,因此这是来自记忆。2我看不到您的代码正在测试中,所以我不得不假设您正在正确设置您的模型,以匹配代码的工作方式 您需要检查是否对依赖项进行了正确的调用。这是使用Verify完成的。将其添加到断言部分 您可以通过将测试中的代码更改为调用DeleteAsyncnull来证明这是否是正确的,这会导致测试失败,当您将其放回测试时,测试应该通过 顺便说一句,在Moq中,我还建议使用Times.Once参数,以确保只调用了一次,我假设Rhino Mocks也有类似的功能,但很抱歉,我不知道这是什么
mockTransloaderRepository.Verify(t => t.DeleteAsync(ostTransloader5));