单元测试一个工作单元

Jus*_*tin 13 c# nunit unit-testing moq

新的单元测试.我有一个单位的工作,我试图进行单元测试.我可能在这里想念一些简单的东西.我正在尝试对Commit方法进行单元测试.我正在使用nunit和moq.

public class  UnitOfWork : IUnitOfWork
{
    private readonly DbContext _context;
    public UnitOfWork(DbContext ctx)
    {
        _context = ctx;
    }

    public void Commit()
    {
        _context.SaveChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来测试这个?

Mat*_*ela 17

您将插入DBContext的模拟,然后验证是否在提交时调用了SaveChanges方法.

[Test]
public void Will_call_save_changes() {

  var mockContext = new Mock<DBContext>();
  var unitOfWork = new UnitOfWork(mockContext.Object);

  unitOfWork.Commit();


  mockContext.Verify(x => x.SaveChanges());

}
Run Code Online (Sandbox Code Playgroud)