意味がないテストをするな。VERSION==1.0.0 [無断転載禁止]©2ch.net (87レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

9
(1): 2017/09/10(日)02:59 ID:CfAD8p5O(1/6) AAS
>>1
>function getVersion() { return '1.1.0' }
>expect(app.getVersion()).to.be '1.1.0'

バージョンアップのたびにテストコードを変更してメンテするのは微妙すぎるだろ
そうじゃなく、そのバージョン用のテストスイートを書いてるのであればその種のテストにも十分意味がある
(例えば1.0系のテストと1.1系のテストを並列でメンテしてる場合)

今は単純文字列を返す実装だから無意味に感じるのだろうが
リファクタして設定ファイルからバージョンを取得するようにしたり
DBからバージョンを取得するようになったりしても
仕様を満たしてるかどうかを確認できる

テストが不要なくらい明白な実装かどうかを
毎回判断しながらテストケースを管理することのほうが意味がない
10
(1): 2017/09/10(日)03:10 ID:CfAD8p5O(2/6) AAS
>>6
バリデーションのテストは
「ある項目に数字以外を入れたらエラーになる」という
仕様を満たしているかどうかのテストであって正規表現のテストをするわけではない
実装が正規表現である必要もない
11
(1): 2017/09/10(日)03:16 ID:CfAD8p5O(3/6) AAS
>>5
それはテンプレートエンジンのテスト
テンプレートエンジンのバージョンなんかが変わっても同じ結果を取得できてるねってやつ
3rdパーティライブラリのテストだから自分の書いてるアプリのテストとは種類が違う
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〜"

このコードはテスト方法よりもテストの意図が全く伝わらないほうが大きな問題
悪い例として書いてるけど、仕様と実装の区別がついてないからこそ
議論の焦点がテストの仕様ではなくテストの実装に当たってる
29: 2017/09/10(日)18:23 ID:CfAD8p5O(5/6) AAS
>>25
「バージョン番号は1.1.1である」という仕様を満たすかどうかのテストと
getVersionメソッドがメソッド仕様どおりに動くかどうかのテストとは別物
俺が言ってたのは前者の話ね

後者のテストをしたいならメソッド仕様をまず明確にしようね
設計書書けってのと同じこと
30: 2017/09/10(日)18:29 ID:CfAD8p5O(6/6) AAS
>>24
what to testがテストの仕様
how to testがテストの実装

>>27を読んでもwhat to testを理解してないのが分かる
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.578s*