やりたいこと
Ruby の標準ライブラリをつかって、URL の存在チェック (404 or not) をしたい
テストコードを書く
describe UrlAccessible do context 'When URL has exist' do it 'gets false (200 OK)' do url = 'http://www.example.com/' expect(UrlAccessible.not_found?(url)).to be_falsy end end context 'When URL has not exist' do it 'gets true (404 NG)' do url = 'http://www.example.com/foo/bar' expect(UrlAccessible.not_found?(url)).to be_truthy end end end
実装コードを書く
require 'uri' require 'net/http' # Is that url accessible? module UrlAccessible def self.not_found?(url_string) uri = ::URI.parse(url_string) response = ::Net::HTTP.get_response(uri) response.code.to_i.eql?(404) end end