我该如何测试Rack中间件?

时间:2012-03-09 08:12:18

标签: ruby-on-rails testing logging couchdb rack

我正在编写一个类似这样的中间件

Given I am logged in
When I visit home page
Then the request and all of my user information should get logged into CouchDB

基本上就是这样,中间件本身并不复杂,但我在工作流程方面遇到了麻烦。

首先,我不知道如何测试这样的东西。功能本身非常清楚,但我将如何实现它?我可以做的最高级测试可能是通过curl发送请求,然后检查它是否已保存到CouchDB中。

问题是,我不确定我应该在什么级别测试这个以及哪种类型的测试最有帮助。目前我基本上按F5并查看数据库中是否有新记录。

该应用程序在Rails 3.2.2上运行,我正在使用couchrest gem进行日志记录。

2 个答案:

答案 0 :(得分:1)

这似乎是集成测试的地方。如果股票轨道集成测试绕过您的中间件,则将其视为机架应用并使用[https://github.com/brynary/rack-test]

答案 1 :(得分:1)

这个Sinatra教程应该有所帮助:

http://www.sinatrarb.com/testing.html

您可能还希望将中间件的日志记录重定向到初始化程序中的Rails记录器,以便在测试运行时查看正在进行的操作:

My::Awesome::Middleware.logger = Rails.logger