ホーム > 今日のテストコード > HTTP接続に依存した処理のテスト

HTTP接続に依存した処理のテスト

HTTP接続に依存した処理をテスト。以下ではwebmockを使っていますが他にもfakewebなどありますね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require 'rubygems'
require 'spec'
require 'webmock/rspec'
require 'open-uri'
 
class HttpClient
 
  def initialize(url)
    @url = url
  end
 
  def fetch_body
    begin
      open(@url) { |io| io.read }
    rescue OpenURI::HTTPError
      nil
    end
  end
 
end
 
describe HttpClient do
 
  TEST_URL = 'http://www.example.com/test'
 
  before :each do
    @client = HttpClient.new(TEST_URL)
  end
 
  it 'ステータスコード200の場合はbodyの内容を返すこと' do
    body = "OK"
    WebMock.stub_request(:get, TEST_URL).to_return(:body => body, :status => 200)
    @client.fetch_body.should == body
  end
 
  it '接続できない場合はnilを返すこと' do
    body = "NG!"
    WebMock.stub_request(:get, TEST_URL).to_return(:body => body, :status => 404)
    @client.fetch_body.should be_nil
  end
 
end

参考:

  1. 2020 年 7 月 6 日 13:43 | #1

    I’m amazed, I have to admit. Rarely do I encounter a blog that’s both equally educative and interesting, and without a doubt, you have hit the nail on the head. The problem is something which too few men and women are speaking intelligently about. I’m very happy I came across this during my hunt for something concerning this.

  2. 2020 年 7 月 6 日 13:56 | #2

    I am very happy to read this. This is the type of manual that needs to be given and not the accidental misinformation that is at the other blogs. Appreciate your sharing this best doc.

  3. 2020 年 7 月 6 日 14:03 | #3

    After looking at a few of the articles on your site, I honestly like your technique of blogging. I book-marked it to my bookmark site list and will be checking back soon. Please visit my website too and tell me what you think.

  4. 2020 年 7 月 6 日 14:07 | #4
  5. 2020 年 7 月 6 日 14:13 | #5
コメントページ
1 159 160 161 328
  1. 2020 年 4 月 15 日 08:47 | #1
  2. 2020 年 4 月 20 日 21:20 | #2
  3. 2020 年 4 月 21 日 23:33 | #3
  4. 2020 年 4 月 30 日 00:18 | #4
  5. 2020 年 5 月 5 日 21:57 | #5
  6. 2020 年 5 月 8 日 21:00 | #6
  7. 2020 年 5 月 10 日 03:19 | #7
  8. 2020 年 6 月 27 日 09:34 | #8
  9. 2020 年 6 月 30 日 21:15 | #9
  10. 2020 年 7 月 1 日 18:32 | #10
  11. 2020 年 7 月 1 日 19:00 | #11
  12. 2020 年 7 月 2 日 18:35 | #12
  13. 2020 年 7 月 3 日 16:36 | #13
  14. 2020 年 7 月 3 日 21:39 | #14
  15. 2020 年 7 月 5 日 20:03 | #15
  16. 2020 年 7 月 5 日 22:41 | #16