We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#33 というのを書いたぐらい、最近は test-unit で良いやん・・・と思っていたのだが、ちょっと気になって assertion の定義を調べだしたら深みにハマっていった
で、良し悪しを言うには「とりあえず assertions の類はどんなのがあるのかぐらい全部把握しておいたほうが良いな」と思った。 Power Assert があるよという話だけなら、 test-unit だけでなく minitest でも RSpec でも使おうと思えば使えるわけだし。
要はここを見た!
・・・こうしてみてみると、重要度に比較すればもっと早く読んでおけばよかったなという程度のボリュームである。 流石に RSpec はあれがあれであぁだが、 要は def match の定義を見れば良いんでしょ。ということぐらいはわかる。そう考えるとむしろ一番定義がシンプルだったりもする。 https://github.com/rspec/rspec-expectations/blob/040d1b0bba83031c9ae432fd3a4462fdd1cc74e7/lib/rspec/matchers.rb の方が概要は掴めそうか。
def match
ただ、 test-unit は大昔からの互換性 & minitest との互換性も維持しようとしているためか、非常に辛い感じの実装というかが多い・・・メンテナが優秀だからなんとかなっているのだろうけど大変そうだ。 でもそれを言ったら rspec も ruby version 絞ってないし、 1.8.7 からCI走らせてるという意味では一番互換性維持頑張ってそうなんだよなぁ・・・
https://github.com/rspec/rspec-core/blob/247d0a706ffa955718d600f3588aeb1e60cebde4/.github/workflows/ci.yml#L70-L108
test-unit は 1.9 からっぽい https://github.com/test-unit/test-unit/blob/9e08ffaf11a03830e4f2aaa74e7d0b68c31e2ca0/.travis.yml#L7-L11 新し目のRubyは GitHub Actions で、 古めの Ruby は Travis-CI で走らせている。なるほど、 Travis-CI の活用方法・・・
そういった意味で一番後方互換性気にしていないのは minitest っぽい。作者的にそうなるんだろうが、相変わらず hoe を採用しているようで全く gemspec の定義的なのが読み解けないが、 rubygems 的には 2.2 以上と解釈されているようだ。
広く使われてるツールだとやむなしなところはあるんだろうけど、自身のバージョンも上げたら古い Ruby のサポートとか後方互換性バシバシ落としてでも使いやすい感じの物があれば、個人的なプロジェクトではそういうの使っていきたいなぁという気持ちはある。
後まぁ、どれにも思ったけど、「これ使わないだろ・・・」っていう assertion/matcher が多すぎる気はする。 だからこそ Power Assert みたいなソリューションが出てきたのだろうけど、一回公式に追加した assertion 落とすのは難しいだろうし、やむなしなのかなー
そういえば、 test-unit では assert_raises を使っていたんだけど、これはどうやら minitest との互換性維持のための alias らしくて assert_raise を使ったほうが良さそうだ。 https://github.com/test-unit/test-unit/blob/9e08ffaf11a03830e4f2aaa74e7d0b68c31e2ca0/lib/test/unit/assertions.rb#L289-L290 後、 例外メッセージとの比較も一緒に行いたいシーンは凄い多かったんだけど、assert_raise_with_message というのが つい最近(3.4.3から)追加された。やったー! 早速使っている。
assert_raises
assert_raise
minitest は興味がなかったんだけど、test-unit 的に使えるはずで rails が公式に採用していて後方互換を積極的に?落としている意味でちょっと気になってきた。しかし、浮気?したくない気もするんだよなー。ぐぬぬ。
#33 (comment) とか https://github.com/kachick/rspec-matchers-power_assert_matchers/blob/67a4d3d7be72ddb3d8eda5a8997174b109be2b7a/lib/rspec/matchers/power_assert_matchers.rb#L18-L52 で思ったけど、custom assertion, custom matcher のオフィシャルな作り方は把握しておいたほうが色々良さそうだなというのも感想。流石にまだ minitest のそれは調べていないけど・・・
The text was updated successfully, but these errors were encountered:
Prefer assert_raise
8090ce7
ref: kachick/times_kachick#103
strict_predicate_matchers
include_chain_clauses_in_custom_matcher_descriptions
on_potential_false_positives
No branches or pull requests
#33 というのを書いたぐらい、最近は test-unit で良いやん・・・と思っていたのだが、ちょっと気になって assertion の定義を調べだしたら深みにハマっていった
で、良し悪しを言うには「とりあえず assertions の類はどんなのがあるのかぐらい全部把握しておいたほうが良いな」と思った。 Power Assert があるよという話だけなら、 test-unit だけでなく minitest でも RSpec でも使おうと思えば使えるわけだし。
要はここを見た!
・・・こうしてみてみると、重要度に比較すればもっと早く読んでおけばよかったなという程度のボリュームである。
流石に RSpec はあれがあれであぁだが、 要は
def match
の定義を見れば良いんでしょ。ということぐらいはわかる。そう考えるとむしろ一番定義がシンプルだったりもする。https://github.com/rspec/rspec-expectations/blob/040d1b0bba83031c9ae432fd3a4462fdd1cc74e7/lib/rspec/matchers.rb の方が概要は掴めそうか。
ただ、 test-unit は大昔からの互換性 & minitest との互換性も維持しようとしているためか、非常に辛い感じの実装というかが多い・・・メンテナが優秀だからなんとかなっているのだろうけど大変そうだ。
でもそれを言ったら rspec も ruby version 絞ってないし、 1.8.7 からCI走らせてるという意味では一番互換性維持頑張ってそうなんだよなぁ・・・
https://github.com/rspec/rspec-core/blob/247d0a706ffa955718d600f3588aeb1e60cebde4/.github/workflows/ci.yml#L70-L108
test-unit は 1.9 からっぽい https://github.com/test-unit/test-unit/blob/9e08ffaf11a03830e4f2aaa74e7d0b68c31e2ca0/.travis.yml#L7-L11
新し目のRubyは GitHub Actions で、 古めの Ruby は Travis-CI で走らせている。なるほど、 Travis-CI の活用方法・・・
そういった意味で一番後方互換性気にしていないのは minitest っぽい。作者的にそうなるんだろうが、相変わらず hoe を採用しているようで全く gemspec の定義的なのが読み解けないが、 rubygems 的には 2.2 以上と解釈されているようだ。
広く使われてるツールだとやむなしなところはあるんだろうけど、自身のバージョンも上げたら古い Ruby のサポートとか後方互換性バシバシ落としてでも使いやすい感じの物があれば、個人的なプロジェクトではそういうの使っていきたいなぁという気持ちはある。
後まぁ、どれにも思ったけど、「これ使わないだろ・・・」っていう assertion/matcher が多すぎる気はする。
だからこそ Power Assert みたいなソリューションが出てきたのだろうけど、一回公式に追加した assertion 落とすのは難しいだろうし、やむなしなのかなー
そういえば、 test-unit では
assert_raises
を使っていたんだけど、これはどうやら minitest との互換性維持のための alias らしくてassert_raise
を使ったほうが良さそうだ。 https://github.com/test-unit/test-unit/blob/9e08ffaf11a03830e4f2aaa74e7d0b68c31e2ca0/lib/test/unit/assertions.rb#L289-L290後、 例外メッセージとの比較も一緒に行いたいシーンは凄い多かったんだけど、assert_raise_with_message というのが つい最近(3.4.3から)追加された。やったー! 早速使っている。
minitest は興味がなかったんだけど、test-unit 的に使えるはずで rails が公式に採用していて後方互換を積極的に?落としている意味でちょっと気になってきた。しかし、浮気?したくない気もするんだよなー。ぐぬぬ。
#33 (comment) とか https://github.com/kachick/rspec-matchers-power_assert_matchers/blob/67a4d3d7be72ddb3d8eda5a8997174b109be2b7a/lib/rspec/matchers/power_assert_matchers.rb#L18-L52 で思ったけど、custom assertion, custom matcher のオフィシャルな作り方は把握しておいたほうが色々良さそうだなというのも感想。流石にまだ minitest のそれは調べていないけど・・・
The text was updated successfully, but these errors were encountered: