0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

テストを自動化する

Last updated at Posted at 2022-09-29

動機

テストのことを知らないため

プログラマの三大美徳

怠惰、短気、傲慢がある。

怠惰

全体の労力を減らすために手間を惜しまない。

短気

コンピュータの動作が怠惰な時に怒りを感じる

傲慢

自分の書いたプログラムは誰に見せても恥ずかしくない胸を張って言える自尊心

気づき

三大美徳のためにテストを使うのか。

Minitestの基本を選んだ理由

Railsのデフォルトのテすティングフレームワークなので、Railsを開発する時にも知識を活かしやすい。
※排発の現場ではMinitest以外のフレームワークが使われることもあるため

テストコードの雛形

require 'minitest/autorun'

class SampleTest < Minitest::Test
  def test_sample
    assert_equal 'RUBY', 'ruby'.upcase
  end
end

クラス名の注意点

Testで終わる、またはTestで始まる名前をつけることが多い。

テストのファイル名の注意点

クラス名と_test,test_を繋ぎ合わせます。

メソッド名の注意点

メソッド名をtest_で始めることは必須。
テストの内容がわかるように命名する。

requireとは

組み込みライブラリでない標準ライブラリやGemを利用する場合は、明治的にそのライブラリを読み込む必要があります。ライブラリを読み込む場合は次のような構文を使います。

require ライブラリ名

Minitestの検証メソッド

# aがbと等しければパスする
assert_equal b,a

# aが真であればパスする
assert a

# aが偽であればパスする
refute a

まだメソッドはある。

テストコードの実行と結果の確認

$ ruby sample_test.rb
Run options: --seed 14255

# Running:

F

Finished in 0.001383s, 723.1400 runs/s, 723.1400 assertions/s.

  1) Failure:
SampleTest#test_sample [sample_test.rb:5]:
Expected: "RUBY"
  Actual: "Ruby"

1 runs, 1 assertions, 1 failures, 0 errors, 0 skips

出典
https://qiita.com/jnchito/items/1e928f8088b2cc6bd3fa

0.001383s

テスト実行にかかった秒数

723.1400 runs/s

1秒間に実行できるであろうテストメソッドの件数

723.1400 assertions/s

1秒間に実行できるであろう検証メソッドの件数

1 runs

実行したテストメソッドの件数

1 assertions

実行した検証メソッドの件数

1 failures

検証に失敗したテストメソッドの件数

0 errors

検証中にエラーが発生したテストメソッドの件数

0 skips

skipメソッドにより実行をスキップされたテストメソッドの件数

プログラム本体とテストコードを分離する

プログラム本体とテストコードは分離して別々のファイルとして管理すべき。
そのためにテストファイルから対象となるメソッドの定義を読み込めるようにしましょう。

require 対象のファイルのパス

気づき

テストを知らなかった。
これからテストを勉強がてら簡単なものからテストしようと思う。

出典

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?