私は、Ruby と Rspec に関してかなり幅広いバックグラウンドを持っています。しかし、Node と Mocha を学習していると、理解できない構文に出くわしました。
このチュートリアルを例として使用すると、ルートのテストは次のようになります (CoffeeScript を使用)。また、モカを初心者に説明する次の例を他の多くの場所で見たことにも注意してください。
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に堪能な人にこれを説明できる人はいますか?