任何优秀的软件架构师都会同意,当某人从头开始构建一个新项目时,他一定不能在开始时进行边界(数据库、GUI、外部服务等)。事实上,他应该独立于构建软件的核心任何后端,并将它们视为应用程序的一种“插件”。
TDD 和验收测试促进了每个新功能:
- 为功能编写失败的验收测试(端到端)
- 借助一些单元测试,推动并完成您的代码设计
- 验收测试通过后立即完成。
但是,很多文章解释说验收测试是一个真正真正端到端的测试,因此涉及 GUI(浏览器(例如使用 Selenium)或其他一些界面)。
验收测试不应该基于应用程序的 HEART 并且独立于任何边界吗?例如,这将迫使我考虑 GUI...:s
什么是好的做法?为每个功能编写两种验收测试?:一种用于业务逻辑,另一种确保 GUI 正常工作?