如何针对传递给模拟存储库的对象进行断言
How to assert against an object passed to a mock repository
我在 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);
如果不是,我有什么选择。
我正在使用 MSTest
和 Moq
。
Mock<T>
有你可以像这样使用的回调方法;
myMock
.Setup(x => x.Update(It.IsAny<MyDtoType>()))
.Callback<MyDtoType>(VerifyDto);
以及验证方法;
public void VerifyDto(MyDtoType dto)
{
Assert.AreEqual(1, myDto.Field1);
}
我在 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);
如果不是,我有什么选择。
我正在使用 MSTest
和 Moq
。
Mock<T>
有你可以像这样使用的回调方法;
myMock
.Setup(x => x.Update(It.IsAny<MyDtoType>()))
.Callback<MyDtoType>(VerifyDto);
以及验证方法;
public void VerifyDto(MyDtoType dto)
{
Assert.AreEqual(1, myDto.Field1);
}