c# - 如何对 IRepository 进行单元测试?

标签 c# unit-testing nunit repository ravendb

我使用提到的存储库编写了以下方法 在以下博客文章 (http://www.codecapers.com/post/Using-RavenDB-with-ASPNET-MVC.aspx) 中使用 RavenDB:

public User GetUserById(string id)
{
     var user = (from usr in _repository.All<User>() where usr.Id == id select usr).FirstOrDefault();

     if (user == null)
     {
          throw new NullReferenceException("No user with the id (" + id + ") could be found.");
     }

     return user;
}

您将如何使用 nunit(可能还有最小起订量)对该方法进行单元测试?

“user”只是一个普通类。

最佳答案

通常您不会直接针对存储库层编写测试。 例如,假设您正在使用 nHibernate 或 Entity Framework,而不是针对存储库进行测试从技术上讲就是在测试该框架。

创建者或那些 ORM 已经这样做了。

同时与数据库对话使您的测试成为集成测试而不是单元测试。

例如,您的单元测试将针对业务层模拟存储库层。

如果您想编写一个集成测试,您也可以针对业务层编写它,但不要模拟存储库层并让它通过。

关于c# - 如何对 IRepository 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300280/

相关文章:

c# - 使用 C# 来利用 Windows 7 RC?

c# - 我应该提交 Visual Studio 生成的哪些文件?

java - JUnit 如何找到测试?

c# - TDD nUnit 一个方法的多个断言

c# - 如何使用 ReSharper 创建 NUnit 测试?

c# - Nunit 异步测试异常断言

c# - 查看 c# 控制台应用程序参数

c# - c# 中的两个 if 语句有区别吗

php - 如何在 Laravel 中基于 application/json header 加载路由

unit-testing - 如何对pubsub进行单元测试接收回调