我目前正在使用Java中的Selenium工具编写测试自动化系统。该系统旨在用于对Web应用进行端到端的验收测试。测试用例是用Gherkin语言编写的,并由BDD框架Cucumber(Cucumber-JVM)执行。底层函数使用Selenium/WebDriver与AUT和浏览器进行交互。Selenium代码使用PageObject模式进行结构化,这种模式抽象了WebDriver的使用方式。cucumber步骤定义仅调用PageObjects提供的方法。
随着项目的继续,变得越来越复杂,我希望开始编写单元测试,以确保验收测试及其周围的实用程序函数按预期执行 :)
现在来到问题:
为测试自动化项目编写单元测试是否可行?
主要问题是,在我第一次尝试使用TestNG进行单元测试时,我意识到我的单元测试最终做了与验收测试相同或类似的事情。这是低效的,因为单元测试非常慢且有很多依赖项。
那么在这种情况下,是否只测试实用程序类并让Selenium代码保持不变呢?即仅测试可以在不调用Selenium WebDriver并与AUT进行交互的情况下测试的内容?
注意:只是为了确保没有被误解。我询问的是在验收测试代码和所有辅助代码上运行单元测试,而不是使用像JUnit或TestNG这样的单元测试框架运行Selenium测试用例。
如果编写测试用于测试是否合理,任何帮助和/或想法将不胜感激;)