期待するリクエストの内容つきでモックする
さらに,
たとえば,
diff --git a/spec/miniblog_client_spec.rb b/spec/miniblog_client_spec.rb
@@ -27,7 +27,7 @@ describe MiniblogClient do
describe "#post_entry" do
before do
- WW::Server.mock(:miniblog).post("/messages") do
+ WW::Server.mock(:miniblog, "message" => "こんばんは").post("/messages") do
""
end
conn = Connection.new("localhost", 3080)
こうすると,
スパイのリクエストの状況を検証する
前回紹介した,
たとえば,
diff --git a/spec/miniblog_client_spec.rb b/spec/miniblog_client_spec.rb
@@ -42,4 +42,15 @@ describe MiniblogClient do
@client.post_entry("moro", "こんばんは")
end
end
+
+ describe "#entry_list" do
+ before do
+ conn = Connection.new("localhost", 3080)
+ client = MiniblogClient.new(conn, "alice", "bob", "charls")
+
+ client.entry_list
+ end
+ subject { WW::Server[:miniblog] }
+ it { should have(3).requests }
+ end
end
スパイとして定義したアクションへのリクエストは,
このテストを実行すると、次のようにパスします。
$ spec -fn -c spec/miniblog_client_spec.rb MiniblogClient サーバが正常に起動していること #post_entry /messageにメッセージをPOSTすること #entry_list should have 3 requests Finished in 0.197325 seconds 3 examples, 0 failures
モックとスパイを使い分ける判断基準ですが,
おわりに
今回は,
wwは現在も開発中であり,
外部サービスとの連携は,