我该如何测试Rack中间件?

我该如何测试Rack中间件?

问题描述:

我正在写一个中间件,做这样的事情我该如何测试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来执行日志记录。

这似乎是集成测试的地方。如果基本轨集成测试绕过中间件把它像一个机架应用,并使用[https://github.com/brynary/rack-test]

这西纳特拉教程应该帮助:

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

你可能也想重定向日志记录您的中间件到初始化器中的Rails记录器,以便在测试运行时可以看到发生了什么:

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