unit-testing - 模拟存储库的插入方法

标签 unit-testing mocking moq

我想对以下方法进行单元测试:

void Insert(TEntity entity);

这个方法的类已经被模拟了(我正在使用 Moq)。

现在我想做一个基于状态的测试并告诉 Moq 如果这个方法被调用,一个对象必须插入到一个列表中。
我怎样才能做到这一点?
useraccountRepository.Setup(r => r.Insert(useraccountBeforeLogin)).???

什么来这里?有一个 raises 方法可以引发一个事件。我可以用这个吗?

最佳答案

我知道这是一个旧线程,但这是我测试从模拟存储库插入项目时所做的工作,希望这可能对某人有所帮助。

var myRepositoryMock = new Mock<IMyRepository>();

var itemsInserted = new List<MyItem>();

myRepositoryMock 
    .Setup(i => i.InsertItem(It.IsAny<MyItem>()))
    .Callback((MyItem item) => itemsInserted.Add(item));

关于unit-testing - 模拟存储库的插入方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982168/

相关文章:

unit-testing - "Self-mocking"使用 Rhino Mocks

c# - Moq 是在模拟子接口(interface)返回值并忽略中间步骤是错误还是功能?

java - 假客户端单元测试

c# - 如何用 Moq 测试 void 方法?

Python:使用用于单元测试的文件创建模拟或假目录

python - 单元测试中的模拟认证装饰器

c# - Moq、Ninject、Fluent NHibernate 风格的库?

c# - 使用 Moq 设置事件聚合器事件

unit-testing - 构建 Maven 项目而不运行单元测试

unit-testing - 单元测试Automapper配置文件