我在这里看过一个类似的问题,我想我知道人们的答案在哪里,但我需要确认是否应该为我的解决方案创建带有 Stubbed 存储库的纯单元测试。
如果我有以下单元测试(使用 Microsoft 的 Fake Assemblies 和 MSTest 创建):
[TestMethod]
public void creating_user_returns_a_valid_id()
{
var userId = new Random().Next(1, 1000);
var userRepository = new StubIDataEntityRepository<User>
{
CreateT0 = x =>
{
return userId;
}
};
var user = new User();
var result = userRepository.CreateT0(user);
Assert.AreEqual(result, userId);
}
现在,我一直在学习单元测试,我明白纯单元测试不能跨越任何边界或职责,因此是存根。我知道,如果我想测试在我的数据库中创建用户确实会变成有效的用户 ID,我需要创建一个集成测试。那么,究竟,我在这里测试什么呢?我知道人们说应用程序逻辑,这一切都非常有效,但我肯定正在创建一个创建 id 的测试,告诉假存储库从其 Create 方法返回该 Id,然后确认从 Create 方法返回的 Id 是相同的值. 感觉就像我为以下内容做了很多工作:
x = 1, y = 1, assert.areequal(x,y)!!
答案真的是关于培训开发人员通过 TDD 设计他们的代码吗?如果你们中的任何一位 TDD 专家可以启发我,将不胜感激!
亲切的问候
本