タグ

2021年11月2日のブックマーク (1件)

  • RSpecでexitを含むコードをテストする - pockestrap

    TL;DR expect{subject}.to raise_error SystemExit exitをテストする状況はそもそも筋が悪い 前置き こんにちは。私は最近miというRails用のマイグレーションジェネレータを作っています。 github.com Railsのジェネレータは内部でThorというライブラリを使用しています。 このライブラリを使用していく上で、一つ問題が発生しました。 処理を途中で切り上げるためにexitメソッドを使用しないといけない事態に陥ってしまっていました。 問題点 exitはその時点でプロセスを終了するメソッドです。 このメソッドの問題点の一つに、テストがしづらくなると言うことがあります。 例えば、以下のようなメソッドをテストすることを考えます。 def do_something # ... if cond # ... exit 1 end # ... en

    RSpecでexitを含むコードをテストする - pockestrap
    patorash
    patorash 2021/11/02
    rake taskでabortしてたら、rspecを実行したらそこでrspecごとabortしてしまったが、SystemExitを検証したら直った。