第一次尝试 tdd。我应该写哪些测试?
first time trying tdd. which tests should I write?
我正在开发一个用于健身房访问控制的应用程序。
我想让所有这些应用程序都可以测试,但这是我第一次使用 TDD/BDD。我不太清楚应该创建哪些测试。
也许从用户的角度来测试?类似于:
- 作为访客,我想进入健身房。
- 作为访客,我想退出健身房。
- 作为访客,我想进入两次(这应该return例外)。
- ...
- 作为管理员,我想导入访客列表。
- 作为管理员,我想清除访客列表。
- 作为管理员,我想知道谁在健身房。
- ...
或者从开发者的角度进行测试?类似于:
- testVisitorEnterOnGymReturnTrue()
- testVisitorExitGymReturnTrue()
- testVisitorExitGymBeForeEnteredToGetException()
- testVisitorEnterGymTwoTimesToGetException()
- testAdministratorImportListOfVisitorsReturnTrue()
- testAdministratorClearListOfVisitorsReturnTrue()
- testAdministratorShowWhoIsOnTheGymNowReturnArray()
我应该在开始编码之前创建哪种测试?
一定要从用户的角度进行测试,而不是从您自己的角度进行测试(除非您是您自己的客户)。
以这种方式工作,您就有了与客户对话的基础,我发现这对于发现那些很少想到的极端案例特别有用。对话将以您的用户理解的方式进行,并将转换回更多测试。
我将从对 classes 进行单元测试开始。
它本质上是开发人员的角度,您验证 class 中的每个方法是否按照您期望的方式执行。
您会惊讶于通过这种方式可以找到多少错误。
强烈建议在编写代码时而不是之后编写测试。
我正在开发一个用于健身房访问控制的应用程序。 我想让所有这些应用程序都可以测试,但这是我第一次使用 TDD/BDD。我不太清楚应该创建哪些测试。
也许从用户的角度来测试?类似于:
- 作为访客,我想进入健身房。
- 作为访客,我想退出健身房。
- 作为访客,我想进入两次(这应该return例外)。
- ...
- 作为管理员,我想导入访客列表。
- 作为管理员,我想清除访客列表。
- 作为管理员,我想知道谁在健身房。
- ...
或者从开发者的角度进行测试?类似于:
- testVisitorEnterOnGymReturnTrue()
- testVisitorExitGymReturnTrue()
- testVisitorExitGymBeForeEnteredToGetException()
- testVisitorEnterGymTwoTimesToGetException()
- testAdministratorImportListOfVisitorsReturnTrue()
- testAdministratorClearListOfVisitorsReturnTrue()
- testAdministratorShowWhoIsOnTheGymNowReturnArray()
我应该在开始编码之前创建哪种测试?
一定要从用户的角度进行测试,而不是从您自己的角度进行测试(除非您是您自己的客户)。
以这种方式工作,您就有了与客户对话的基础,我发现这对于发现那些很少想到的极端案例特别有用。对话将以您的用户理解的方式进行,并将转换回更多测试。
我将从对 classes 进行单元测试开始。 它本质上是开发人员的角度,您验证 class 中的每个方法是否按照您期望的方式执行。 您会惊讶于通过这种方式可以找到多少错误。 强烈建议在编写代码时而不是之后编写测试。