模拟存储库的插入方法

mos*_*o87 3 unit-testing moq mocking

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

void Insert(TEntity entity);
Run Code Online (Sandbox Code Playgroud)

该方法的类已被嘲笑(我正在使用Moq)。

现在,我想做一个基于状态的测试,并告诉Moq是否调用了此方法,必须将一个对象插入到列表中。我怎样才能做到这一点?

useraccountRepository.Setup(r => r.Insert(useraccountBeforeLogin)).???
Run Code Online (Sandbox Code Playgroud)

怎么了 有一个引发事件的引发方法。我可以用这个吗?

Rob*_*son 6

我知道这是一个旧线程,但这是我用来测试是否从模拟存储库中插入项目的方法,希望这可以对某人有所帮助。

var myRepositoryMock = new Mock<IMyRepository>();

var itemsInserted = new List<MyItem>();

myRepositoryMock 
    .Setup(i => i.InsertItem(It.IsAny<MyItem>()))
    .Callback((MyItem item) => itemsInserted.Add(item));
Run Code Online (Sandbox Code Playgroud)


Ada*_*Dev 3

您可以使用回调- 那里列出了一些示例