我目前正在评估如何基于服务器端的 Rails 4 和客户端的 EmberJS 测试一个相当大而复杂的 Web 应用程序。在我们的应用程序中,客户端专门通过RESTful JSON API 与服务器进行通信。
到目前为止,我们基于 Konacha 做了很多单元测试,现在也愿意设置集成/验收测试。我们不确定我们是否应该开始编写端到端测试,所以测试包括我们服务器的运行实例,或者我们是否应该分别进行 API 和客户端的集成测试。
我们目前的首选是端到端测试,因为我们担心在单独集成测试 API 和客户端的情况下,我们需要花费两倍的精力来创建和维护测试,并且可能会存在通信的微小特性API 和客户端之间我们无法捕捉到。
好吧,我们喜欢像 Konacha 这样的现代快速测试框架,所以我们真的不想使用 Selenium。不仅因为感觉有点老旧,还因为它的性能相当差。您仍然需要控制服务器上模拟数据的实例化和服务器的重置,为什么我们想出了以下方法:
我们实现了一个测试 API,它在概念上用于控制服务器的状态,例如它有以下方法:
GET /api/test/setup # Simple bootstrapping of the database, e.g. populate table with ISO language codes etc...
GET /api/test/reset # Reset the database, using `database_cleaner` gem
然后,一个 konacha 测试用例将分别在每个测试用例之前和之后调用setup
and 。reset
您如何看待这种方法?