【发布时间】:2012-08-26 18:34:44
【问题描述】:
我在 Ruby 和 Rspec 方面有相当广泛的背景。然而,在我学习 Node 和 Mocha 的过程中,我遇到了一些我似乎无法理解的语法。
以this tutorial 为例,测试路由包括以下内容(使用CoffeeScript)。还应该注意的是,我在许多其他地方向初学者解释 Mocha 的以下示例。
require "should"
routes = require "../routes/index"
describe "routes", ->
describe "index", ->
it "should display index with posts", ->
req = null
res =
render: (view, vars) ->
view.should.equal 'index'
vars.title.should.equal('My Coffeepress Blog')
routes.index(req, res)
如果我理解正确,这个测试会设置模拟请求和响应变量(分别为 req 和 res)并将它们发送到 routes.index() 函数。
我不明白,但是,它为什么以及如何在 render() 函数调用中进行断言。这似乎是一种完全不同的测试方法,因为我习惯于设置数据,根据预期值测试数据,然后将数据分解。在这里,似乎“设置数据”(创建模拟 res 对象)的一部分正在做出断言。
谁能向精通 Rspec 的人解释这一点?
【问题讨论】: