トップ «前の日記(2009/09/24 (木) ) 最新 次の日記(2009/09/26 (土) )» 編集 RSS feed

HsbtDiary


2009/09/25 (金) [長年日記]

[Game] TGS雑感

値下げネタばっかで他は特に無し。PS3 ライトニングエディションはちょっと欲しい。

[Ruby][cucumber][Nokogiri] cucumber+Nokogoriの作法がわからない

リハビリとして、testable_tdiary に入った角谷さんの変更点を見ていたんだけど、Hpricot を Nokogiri に置き換えた部分がいまいち cucumber で動いてないみたい。

When /(.*) に(?:アクセス|ポスト)した/ do |uri|
	target = case uri
		when "index.rb"; :index
		when "update.rb"; :update
		else raise "invalid uri: must be index.rb or update.rb"
		end
	@status, @header, @response = @driver.invoke(target)
	@response = Hpricot(@response)
end

Then /HTMLの (.*) タグの内容は (.*) を含む/ do |hpricot_path, content|
	@response.should have_tag(hpricot_path, /#{content}/)
end

みたいなコードがあったときに、@response をHpricotからNokogoriに単純に置き換えた場合、@response.should が

undefined method 'find' 〜

となって動かない。しょうがないので @response.text と変更してみても内容が HTML から ブラウザに表示される内容になってしまって、今度はテストが失敗してしまう。

んで、しょうがないので @response を HTML にして出力する方法を探してみたんだけど、to_html とかしてみてもundefined method 'find' が出てしまってどーにも解決しない。

この辺の cucumber と Nokogiri の組み合わせに詳しい人助けて!

本日のツッコミ(全4件) [ツッコミを入れる]
# hiraku (2009/09/26 (土) 02:25)

should have_tagが動くかどうかは分からないんですが、HTML自体は<br> @response.to_s<br>でどうでしょうか?

# しばた (2009/09/26 (土) 09:07)

to_sでもundefined〜だったんですよねえ。should とか have_tag の方も関係しているかもしれません。

# かくたに (2009/09/30 (水) 02:44)

わたしもちょっとリハビリはじめてみたのですが、cucumberで動かすところはそもそもダメなところがいろいろありそうです。すんません。kakutani/tdiary にブランチきってやってみます……。

# しばた (2009/09/30 (水) 18:33)

ありゃ、では cucumeber 以外の方向でちょっとこちらも動いてみます。