如何针对传递到模拟存储库的对象进行断言



我在SUT 中有一个代码结构,如下所示

public class SUT
{
//...
public void Process()
{
// Does some work and creates new myDto(), and assigns field values.
Update(myDto);
}
private void Update(MyDto myDto)
{
_repository.Update(myDto);
}
}

我在单元测试中通过了_repository的模拟。在调用Update(MyDto myDto)方法之前,我想验证字段是否设置正确

有没有一种方法可以通过mock获得参数对象的引用?

我想针对传递的对象myDto的字段进行断言。

有点像。

Assert.AreEqual(1, myDto.Field1);

如果没有,我有什么选择。

我正在使用MSTestMoq

Mock<T>有一个回调方法,您可以这样使用它;

myMock
.Setup(x => x.Update(It.IsAny<MyDtoType>()))
.Callback<MyDtoType>(VerifyDto);

以及验证方法;

public void VerifyDto(MyDtoType dto) 
{
Assert.AreEqual(1, myDto.Field1);
}

相关内容

  • 没有找到相关文章

最新更新