使用"Testing API"进行客户端状态控制的验收测试轨道



我目前正在评估如何基于服务器端的Rails 4和客户端的Emberjs测试相当大而复杂的Web应用程序。在我们的应用程序中,客户端专门通过服务器通过RESTFUL JSON API进行通信。

到目前为止,我们基于Konacha进行了许多单元测试,现在也愿意设置集成/接受测试。我们不确定是否应该开始编写端到端测试,因此包括服务器的运行实例在内的测试,或者我们是否应该分别进行集成测试和客户端。

目前,我们的首选选择是端到端测试,因为我们担心在集成测试API和客户的情况下,我们有两倍的创建和维护测试的努力,并且可能有很小的专业我们无法捕获的API和客户端之间的共处。

好吧,我们喜欢Modern&快速测试框架等konacha,所以我们真的不想使用硒。不仅因为它感觉有些老,而且还因为其性能很差。您仍然需要控制服务器和重置服务器上模拟数据的实例化,为什么我们想出以下方法:

我们实现了一个测试API,从概念上讲,该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

分别在每个测试案例之前和之后分别调用setupreset的Konacha测试用例。

您如何看待这种方法?

不确定我会分别称为API和客户端的测试,但是即使您考虑进行此类测试,您仍然应该为端到端提供测试。

是的,我认为您进行端到端测试的想法非常好。

您设置简单命令以允许系统的测试自动化(设置和重置命令)也非常好。准备在自动化过程中添加更多 - 而从概念上讲,端到端测试是一个黑框测试,实际上,它通常是灰色盒子测试,即您需要访问系统的内部状态。我将其称为正在测试的系统的"操作和维护接口"。

相关内容

  • 没有找到相关文章