我有一个简单的基于 CRUD 的应用程序要完成。我正在尝试以 TDD 方式解决此问题。我是 TDD 的新手,实际上无法理解如何进行测试。
场景是:
- 我需要能够创建/更新/删除员工(一次一个)。
- 我需要能够检索员工列表以进行显示
为简单起见,您可以假设这是一个命令行应用程序。(我实际上打算将其作为 WPF MVVM 应用程序来执行。)
我不确定我的第一个测试应该是什么。
到目前为止,我尝试过的是:
假设我有一个返回一组员工的员工存储库。
我尝试的第一个测试是:
[Test]
public void RepositoryShouldReturnTheListOfEmployees()
{
var repository = new EmployeeRepository();
var employees = repository.GetEmployees();
Assert.IsNotEmpty(employees);
}
我从这个开始,然后从 GetEmployees() 方法返回一个 Employee 对象以使我的测试通过。然后,一旦测试通过,我就重构了 EmployeeRepository 以实现一个接口并在测试方法上使用它。
这是一项非常微不足道的任务,这种方法对我来说似乎有点过头了(至少现在是这样)。但是我敢肯定,当应用程序变得更大时,即使是微不足道的测试也会开始得到回报。
但我有一种感觉,我的方法有些不对劲。有经验的 TDDer 会采用同样的方法吗?或者那会是什么。我也想不出可以用于“添加员工”功能的测试。
我可以跳过这些 CRUD 场景,并可能尝试测试其他更复杂的功能。但这是正确的方法吗?
基本上我现在正在做的是测试驱动我的存储库,除了持久化和检索信息之外没有做任何事情。到目前为止,这个 TDDing 这对我来说似乎是一项非常平凡的任务。
感谢您的所有投入。