TDD - 你测试多少?

son*_*tek 3 .net c# tdd unit-testing

我正在开发一个新项目,我正在使用存储库模式,我有一个从数据库中提取数据的存储库和一个使用存储库并执行所有业务逻辑的"服务"类.

类似于以下内容;

public class UserRepository : IUserRepository
{
    public IQueryable<User> GetUsers()
    {
    // do stuff
    }
}

public class UserService 
{
    public IList<User> GetUserById
    {
        var rep = new UserRepository();
        var users = rep.GetUsers();
        // do business logic
        return users.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

你会测试UserService和UserRepository吗?或者你认为只测试服务就足够了吗?我认为,因为服务正在使用存储库它应该很有趣,但它确实会破坏代码覆盖率.

ste*_*vex 9

您应该对它们进行测试,因为有一天可能会有UserRepository的其他客户端而不是UserService,并且这些客户端可能使用UserRepository而不是UserService.


Ste*_*owe 8

测试您需要的功能:

  • 某些功能可能位于一个类中
  • 有些人可能住在另一个班级
  • 有些人可能需要两个班级

根据您的描述,您似乎可以定义功能,因此您几乎可以证明您喜欢的任何测试;-)

如果您正在寻找最低的TDD效率,请仅测试当前功能,然后继续.代码覆盖范围与 TDD 无关 ; 这是一个单元测试指标(值得怀疑)

[让downvoting开始吧!;-)]