アサーション失敗時の情報量を大幅に増やすことができるPower Assertの系譜
-
orange_clover
- 8033
- 1
- 8
- 0

Python の場合範囲も assert 0 < testee.x < 100 みたいに assert でテストできるからねぇ。。。
2013-01-08 16:38:06
unittest とかの assert* メソッドを使うと、テストが失敗した時にその引数を表示してくれるのが純粋な assert 文よりも優れてるんだけど、 py.test の場合魔術つかって assert が失敗した時にちゃんとそのassert文の式の内容を表示してくれる。
2013-01-08 16:39:03
@methane おお、なるほど。失敗時の情報量のことを reply しようと考えていたところでした。 Groovy の power assert のような機能なのですね。
2013-01-08 16:41:01
@t_wada はい。 http://t.co/cDHEwB2D この例にあるように、大変分かりやすく状況を教えてくれます。
2013-01-08 16:42:48
Python のテスティングフレームワーク py.test には Groovy の Power Assert のような機能があり、アサーション失敗時の情報量を大幅に増やすことができる。 / “The writing and repor…” http://t.co/KtELYMgH
2013-01-08 16:47:19
最近テスティングフレームワークの世界に Power Assert 系とでも呼ぶべき系譜が出てきて良いなぁと思う。シンプルな assert を書きつつ失敗時の情報が多い。起源は Groovy の Power Assert かな?
2013-01-08 16:49:40
@nobeans 少なくとも私が初めて見たのは Groovy の Power Assert だし、その出力に驚いたことを覚えています。
2013-01-08 16:54:57
@t_wada 自分もGroovy1.8での「SpockからのPowerAssertのマージ」というリリースノートが初見だったと思います(Spockのassertが元ネタ、というのも多分その時点で知ったような)
2013-01-08 16:57:35
power assert始めてみた時は確かに衝撃だった。何が衝撃って、「あ、俺、テストこけた時の為に頑張って複雑なAPI覚えなくても良いんだ」って事。
2013-01-08 16:57:53
"実はSm***Talkにあったのだよ" とか言われても否定できないというか知らない領域が多すぎて起源を主張するのは憚られる、ぐらいの自信のなさ
2013-01-08 17:00:39
Power Assert は Groovy 1.7 からだけど pytest はもっと前からあるね。まぁどこが元祖とか下らないので興味ないけど、 assertX 関数を覚えられないのですべての言語 or テストフレームワークが対応するといいと思う。
2013-01-08 17:27:37
@nobeans @t_wada ですです。Spock の Assert は Groovy のとは別実装ですが。
2013-01-08 19:50:24