在干净的架构中,如何进行验收测试?
Posted
技术标签:
【中文标题】在干净的架构中,如何进行验收测试?【英文标题】:In clean architecture, How to do acceptance testing? 【发布时间】:2017-08-20 19:18:16 【问题描述】:在 android 中,我使用干净的架构并将我的代码按层打包。所以我有 4 层 (modules) :
应用程序 数据 设备 域我知道,如果我错了,请纠正我,验收测试(使用 FitNesse) 应该更好地取代 UI,它应该模仿 UI 并从客户的角度测试系统的核心功能看法。
我的问题是:
我应该为 FitNesse 固定装置和其他东西创建另一个模块,并依赖于系统中的每个模块吗?
【问题讨论】:
你不(也或什至只是)想要验收测试来测试 GUI 吗?毕竟,这就是您的用户将使用的东西。 他做对了。 Fitnesse like Cucumber 是一个旨在通过直接调用被测系统代码来测试业务逻辑的工具,独立于 UI。通过 UI 进行端到端测试是驱动浏览器的不同工具(例如 WebDriver API)的最佳选择。业务逻辑最好远离 UI 进行测试,因为 UI 往往会发生很大变化,并且还需要在某个地方部署应用程序来进行测试,并且由于您是通过网络进行测试,因此响应速度要慢得多。 抱歉,迟到了。 @FriedHoeben > 不,我不想通过验收测试来测试 UI。 我倾向于使用 FitNesse 在各个级别上进行测试,包括服务和 UI(在夹具代码中使用 WebDriver API),但总是在部署代码之后。对于直接针对代码的测试,无需部署,我倾向于使用单元测试工具(如 jUnit、TestNG 等)。当您直接针对代码工作时,通过 wiki 进行测试的附加值对我来说似乎微不足道。 简而言之,你说: 1. 我们应该在部署后使用验收测试框架。 2. 在此之前使用单元测试框架。 ? 【参考方案1】:这是我通常看到的,是的。构建器系统(maven、gradle 等)进行了调整,使其不包括包含生产工件中的固定装置的模块。包含 Fitnesse 固定装置的模块知道 / 依赖于它直接测试的所有模块,这往往是领域层。
【讨论】:
我也倾向于将这种方法与单独的模块一起使用。我们可以讨论测试在哪个级别连接到被测系统,但这不是主要问题。以上是关于在干净的架构中,如何进行验收测试?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有嵌入式服务器或新集群的情况下模拟 couchbase 进行验收测试?