我想对以下方法进行单元测试:
void Insert(TEntity entity);
此方法的类已经被模拟(我正在使用Moq)。
现在我想做一个基于状态的测试并告诉Moq如果调用此方法,则必须将对象插入到列表中。 我怎么能这样做?
useraccountRepository.Setup(r => r.Insert(useraccountBeforeLogin)).???
这是什么?有一种引发方法会引发事件。我可以用这个吗?
答案 0 :(得分:5)
我知道这是一个旧线程,但这是我测试从虚拟存储库中插入项目所做的,希望这可能对某人有帮助。
var myRepositoryMock = new Mock<IMyRepository>();
var itemsInserted = new List<MyItem>();
myRepositoryMock
.Setup(i => i.InsertItem(It.IsAny<MyItem>()))
.Callback((MyItem item) => itemsInserted.Add(item));
答案 1 :(得分:1)
您可以使用callbacks - 其中列出了一些示例