5

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

void Insert(TEntity entity);

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

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

useraccountRepository.Setup(r => r.Insert(useraccountBeforeLogin)).???

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

4

2 回答 2

11

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

var myRepositoryMock = new Mock<IMyRepository>();

var itemsInserted = new List<MyItem>();

myRepositoryMock 
    .Setup(i => i.InsertItem(It.IsAny<MyItem>()))
    .Callback((MyItem item) => itemsInserted.Add(item));
于 2016-08-17T15:02:59.617 回答
3

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

于 2013-02-20T14:27:53.933 回答