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

Groovy、PythonのPower Assertについての起源、便利な点など。
2
methane @methane

Python の場合範囲も assert 0 < testee.x < 100 みたいに assert でテストできるからねぇ。。。

2013-01-08 16:38:06
methane @methane

unittest とかの assert* メソッドを使うと、テストが失敗した時にその引数を表示してくれるのが純粋な assert 文よりも優れてるんだけど、 py.test の場合魔術つかって assert が失敗した時にちゃんとそのassert文の式の内容を表示してくれる。

2013-01-08 16:39:03
Takuto Wada @t_wada

@methane おお、なるほど。失敗時の情報量のことを reply しようと考えていたところでした。 Groovy の power assert のような機能なのですね。

2013-01-08 16:41:01
methane @methane

@t_wada はい。 http://t.co/cDHEwB2D この例にあるように、大変分かりやすく状況を教えてくれます。

2013-01-08 16:42:48
Takuto Wada @t_wada

Python のテスティングフレームワーク py.test には Groovy の Power Assert のような機能があり、アサーション失敗時の情報量を大幅に増やすことができる。 / “The writing and repor…” http://t.co/KtELYMgH

2013-01-08 16:47:19
Takuto Wada @t_wada

最近テスティングフレームワークの世界に Power Assert 系とでも呼ぶべき系譜が出てきて良いなぁと思う。シンプルな assert を書きつつ失敗時の情報が多い。起源は Groovy の Power Assert かな?

2013-01-08 16:49:40
Yasuharu Nakano @nobeans

@t_wada クックックッ(※起源かどうか知らないしオレが作ったわけでもない

2013-01-08 16:53:22
Takuto Wada @t_wada

@nobeans 少なくとも私が初めて見たのは Groovy の Power Assert だし、その出力に驚いたことを覚えています。

2013-01-08 16:54:57
Yasuharu Nakano @nobeans

@t_wada 自分もGroovy1.8での「SpockからのPowerAssertのマージ」というリリースノートが初見だったと思います(Spockのassertが元ネタ、というのも多分その時点で知ったような)

2013-01-08 16:57:35
太一 @ryushi

power assert始めてみた時は確かに衝撃だった。何が衝撃って、「あ、俺、テストこけた時の為に頑張って複雑なAPI覚えなくても良いんだ」って事。

2013-01-08 16:57:53
Takuto Wada @t_wada

@nobeans ということは起源は Spock 説が濃厚ですか?

2013-01-08 16:58:48
いまいまさのぶ @masanobuimai

GroovyのPower AssertはSpockが元ネタでしょ。

2013-01-08 16:59:15
Takuto Wada @t_wada

@ryushi それが Power Assert の良さだなぁ

2013-01-08 16:59:24
Yasuharu Nakano @nobeans

@t_wada 自分の中ではそうですね<Spock起源説

2013-01-08 16:59:38
Yasuharu Nakano @nobeans

"実はSm***Talkにあったのだよ" とか言われても否定できないというか知らない領域が多すぎて起源を主張するのは憚られる、ぐらいの自信のなさ

2013-01-08 17:00:39
Yasuharu Nakano @nobeans

まあ、間違ってたらマサカリが飛んできて、全体として補正がかかる仕組みになっているのか

2013-01-08 17:01:29
Yasuharu Nakano @nobeans

power assertはspockが起源。これガチな(震え声

2013-01-08 17:02:11
Yasuharu Nakano @nobeans

なお、Groovyに取り込まれたのは1.8じゃなくて、1.7からでした

2013-01-08 17:02:45
ぽけば @pocketberserker

spock -> power assert -> ほかの言語、ライブラリ?

2013-01-08 17:05:31
methane @methane

Power Assert は Groovy 1.7 からだけど pytest はもっと前からあるね。まぁどこが元祖とか下らないので興味ないけど、 assertX 関数を覚えられないのですべての言語 or テストフレームワークが対応するといいと思う。

2013-01-08 17:27:37
irof @irof

もしC# やるならpower assert .net 試したい http://t.co/iRiRV9Xu

2013-01-08 17:39:54
BiKiSUKE THE END @bikisuke

@nobeans @t_wada ですです。Spock の Assert は Groovy のとは別実装ですが。

2013-01-08 19:50:24