Unit testing 电子商务应用程序web层/表示层单元测试

Unit testing 电子商务应用程序web层/表示层单元测试,unit-testing,web-applications,tdd,e-commerce,bdd,Unit Testing,Web Applications,Tdd,E Commerce,Bdd,我们在使用selenium和web驱动程序以及Jbehave时取得了一些成功。只是想知道其他人正在使用什么来对任何web应用程序的web层进行单元测试? 我提出这个问题的原因是,与jbehave一起编写web驱动程序测试用例会使单元测试变得非常复杂,而且在更多情况下,它比编写实际的JSP页面花费更多的时间。对web层进行单元测试的一些想法: 使用MVC进行web开发。假设您提取了所有依赖项,那么单元测试控制器非常容易 充分利用接口提取JSP页面中的依赖项。例如,JSP是否进行数据库调用?考虑创建

我们在使用selenium和web驱动程序以及Jbehave时取得了一些成功。只是想知道其他人正在使用什么来对任何web应用程序的web层进行单元测试?
我提出这个问题的原因是,与jbehave一起编写web驱动程序测试用例会使单元测试变得非常复杂,而且在更多情况下,它比编写实际的JSP页面花费更多的时间。

对web层进行单元测试的一些想法:

  • 使用MVC进行web开发。假设您提取了所有依赖项,那么单元测试控制器非常容易

  • 充分利用接口提取JSP页面中的依赖项。例如,JSP是否进行数据库调用?考虑创建一个存储库接口,然后实现实现接口的MySqLeaveToRyPy.java等实现。这样,您还可以“模拟”接口并创建一个假数据库,该数据库将在单元测试中快速运行

  • 对于绝对需要使用依赖项的非常困难的问题,您可以获得web服务器(Grizzly、Jetty)甚至数据库(H2、SQLite)的嵌入式版本

  • 确保编写代码时每个函数只做一件事。这需要一些重构,但它使测试变得更容易


  • 我们当然使用MVC,但这并不能解决为每个复杂页面创建单元测试用例的问题,每个iFrame、css选择器、表单内的复选框、图像、条件广告目标等等。,。。简而言之,我希望能够为表示层/web层编写单元测试用例,就像为后端或中间件模块创建junit一样。