Edited at
移行Day 14

AdventCalendar Day14 [超Ruby入門]


はじめに

本記事は、超Ruby入門14日目の記事です。

コメント頂ける方は、ガイドラインを読んで頂けると幸いです。


目的

テストを楽しむ


目標

単体テストを行えるようになる。


ドキュメント

minitest

library net/http


本題

minitestは、メソッド名をtest_という形式にする必要がある。

以下2つをテストする。


  1. HTTPステータスコードが200

  2. JSONデータが表示される


api_test.rb

require 'minitest/autorun'

require 'net/http'
require 'json'
class ApiTest < Minitest::Test
def setup
@url = "http://localhost:8080/api/v1/"
@response = Net::HTTP.get_response(URI.parse(@url))
end

def test_status_code
assert_equal @response.code, "200"
end

def test_get_json
assert_equal JSON(@response.body.force_encoding("UTF-8")).class, Hash
end
end


$ruby server.rb

$ruby api_test.rb

2つのテストをpassしたことが確認できるはずだ。

3日間を通して、簡易APIを作成できた。


課題

テストを追加せよ。


深めたい人

Ruby on Rails チュートリアルにてminitestを利用したTDDが行われている。

APIテストの実務経験がないので、よく分からないので良サイトや書籍あれば教えて下さい