意味がないテストをするな。VERSION==1.0.0 [無断転載禁止]©2ch.net (87レス)
前次1-
抽出解除 レス栞

16
(1): 2017/09/10(日)10:56 ID:G4ZVCKWZ(4/12) AAS
>>10
> バリデーションのテストは
> 「ある項目に数字以外を入れたらエラーになる」という
> 仕様を満たしているかどうかのテストであって正規表現のテストをするわけではない
> 実装が正規表現である必要もない

はい、そのとおりですね。

処理をしているのが正規表現であるかそれ以外のコードであるかは関係ない。
だからここでやるべきことはnumberOnlyという関数を作ること
そしてそのnumberOnlyが仕様を満たしているかどうか? のテストです。
これは入念にテストする必要があるでしょう。

もしてテストしなければいけない(?)項目はもう一つ残っていますね?
numberOnlyのバリデーションが設定されている項目はpriceだけではなく
sizeやcountなどもいくつもあるでしょう。

それらの数値項目が10個あったとき、10個全てに
numberOnlyでやったのと同じ入念なテストは必要ないのですよ。

まあやるとしたとしても「ある項目のバリデーションがnumberOnlyであること」
ぐらいでしょうが、これもまさに項目のバリデーションにnumberOnlyと
書いたんだから当然numberOnlyに決まってるだろという
データの二重管理にすぎない問題になるわけですよ。

自分で定義したものが(書いたものが)、自分で定義した(書いた)とおりに
なっているかなんて意味がないテストです
21
(2): 2017/09/10(日)14:12 ID:CfAD8p5O(4/6) AAS
>>16
>まあやるとしたとしても「ある項目のバリデーションがnumberOnlyであること」

分かってる風で分かってないね
「ある項目のバリデーションがnumberOnlyであること」ってのは仕様じゃなく実装方法
その区別がついてないから中身の無い長文を量産するんだよ

>expect(template('file.tmpl.html', {title: 'タイトル'})).to.be "<html>¥n <head>¥n  <title>タイトル</title>¥n〜"

このコードはテスト方法よりもテストの意図が全く伝わらないほうが大きな問題
悪い例として書いてるけど、仕様と実装の区別がついてないからこそ
議論の焦点がテストの仕様ではなくテストの実装に当たってる
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s