app.version = '1.0.0'
テストコード
expect(app.version).to.be '1.0.0'
バージョン番号1.1.0に変更すっぞ!
app.version = '1.1.0' に修正
expect(app.version).to.be '1.1.0' に修正
これただのデータの重複、たんなる二重管理ですから\(^o^)/
メンテナンス工数が二倍になるだけ
誰もそんなことやらねーよって思うかもしれないが
関数だったらやってしまうんだよね。
カバレッジがー(笑)
function getVersion() { return '1.1.0' }
expect(app.getVersion()).to.be '1.1.0'
他にも色々と、意味がないテストがある
意味がないテストしてるやつが多い。
関数の実行結果をテストコードにコピペしてテスト作るやつとかな
探検
意味がないテストをするな。VERSION==1.0.0 [無断転載禁止]©2ch.net
2017/09/09(土) 15:31:54.82ID:al+wrNfN
2017/09/09(土) 16:54:48.95ID:hfmQ7RMB
どっかユーザの目に入るところにバージョンでるなら意味あるんじゃね?
2017/09/09(土) 17:25:35.09ID:5TYgeUeA
その前に意味のないコードを入れるな
意味があるならその意味に沿ってちゃんとテストすべき
意味があるならその意味に沿ってちゃんとテストすべき
2017/09/09(土) 20:10:39.54ID:GB2h7YGf
その前に意味のないスレを立てるな
5デフォルトの名無しさん
2017/09/09(土) 20:49:02.98ID:al+wrNfN 意味がないテストっていうのは他にも有るな。
例えばテンプレートの適用結果をテストするとかな
HTML生成のためのテンプレートがあって、
テンプレートファイルを手書きして(ここまでは普通)
そのテンプレートに値を入れたHTMLをテストとして手書きする(アホ)
例えばテンプレートの適用結果をテストするとかな
HTML生成のためのテンプレートがあって、
テンプレートファイルを手書きして(ここまでは普通)
そのテンプレートに値を入れたHTMLをテストとして手書きする(アホ)
2017/09/09(土) 21:17:51.67ID:al+wrNfN
正規表現バリデーションのテストも大概意味がない。
正規表現がものすごく複雑っていうのなら話は別だが、
/^[0-9]+$/ みたいに書いてあるものに対して
数字以外入れたらエラーになることを確かめるテストはいらない
正規表現がものすごく複雑っていうのなら話は別だが、
/^[0-9]+$/ みたいに書いてあるものに対して
数字以外入れたらエラーになることを確かめるテストはいらない
2017/09/09(土) 21:23:57.43ID:al+wrNfN
まあ正規表現バリデーションのテストに関して言えば、
正規表現を直接書くのではなく、numonlyなどというメソッドを作るべき。
そのnumonlyのテストを書くのは少しは意味がある。
だけど、このフィールドはnumonlyになっているか?という
確実にテストは必要ない。
SQLのスキーマのテストしてるようなもんだよ。
SQLのcreate table文で、priceの項目をintegerと書いて
そのテストコードで、create table文のpriceがintegerであること
とテストすることに何の意味があるのだろうか
正規表現を直接書くのではなく、numonlyなどというメソッドを作るべき。
そのnumonlyのテストを書くのは少しは意味がある。
だけど、このフィールドはnumonlyになっているか?という
確実にテストは必要ない。
SQLのスキーマのテストしてるようなもんだよ。
SQLのcreate table文で、priceの項目をintegerと書いて
そのテストコードで、create table文のpriceがintegerであること
とテストすることに何の意味があるのだろうか
2017/09/09(土) 23:25:06.47ID:al+wrNfN
あー、関係ない所でアイデア思いついたわ
一部でテストのことをスペックと呼ぶ文化が有るだろ?
変数の型とかバリデーションとか
コードに書かないでスペックに書けば良いんじゃね?
一部でテストのことをスペックと呼ぶ文化が有るだろ?
変数の型とかバリデーションとか
コードに書かないでスペックに書けば良いんじゃね?
2017/09/10(日) 02:59:20.70ID:CfAD8p5O
>>1
>function getVersion() { return '1.1.0' }
>expect(app.getVersion()).to.be '1.1.0'
バージョンアップのたびにテストコードを変更してメンテするのは微妙すぎるだろ
そうじゃなく、そのバージョン用のテストスイートを書いてるのであればその種のテストにも十分意味がある
(例えば1.0系のテストと1.1系のテストを並列でメンテしてる場合)
今は単純文字列を返す実装だから無意味に感じるのだろうが
リファクタして設定ファイルからバージョンを取得するようにしたり
DBからバージョンを取得するようになったりしても
仕様を満たしてるかどうかを確認できる
テストが不要なくらい明白な実装かどうかを
毎回判断しながらテストケースを管理することのほうが意味がない
>function getVersion() { return '1.1.0' }
>expect(app.getVersion()).to.be '1.1.0'
バージョンアップのたびにテストコードを変更してメンテするのは微妙すぎるだろ
そうじゃなく、そのバージョン用のテストスイートを書いてるのであればその種のテストにも十分意味がある
(例えば1.0系のテストと1.1系のテストを並列でメンテしてる場合)
今は単純文字列を返す実装だから無意味に感じるのだろうが
リファクタして設定ファイルからバージョンを取得するようにしたり
DBからバージョンを取得するようになったりしても
仕様を満たしてるかどうかを確認できる
テストが不要なくらい明白な実装かどうかを
毎回判断しながらテストケースを管理することのほうが意味がない
2017/09/10(日) 03:10:32.77ID:CfAD8p5O
2017/09/10(日) 03:16:10.29ID:CfAD8p5O
>>5
それはテンプレートエンジンのテスト
テンプレートエンジンのバージョンなんかが変わっても同じ結果を取得できてるねってやつ
3rdパーティライブラリのテストだから自分の書いてるアプリのテストとは種類が違う
それはテンプレートエンジンのテスト
テンプレートエンジンのバージョンなんかが変わっても同じ結果を取得できてるねってやつ
3rdパーティライブラリのテストだから自分の書いてるアプリのテストとは種類が違う
2017/09/10(日) 08:18:10.38ID:G4ZVCKWZ
>>9
> 今は単純文字列を返す実装だから無意味に感じるのだろうが
> リファクタして設定ファイルからバージョンを取得するようにしたり
> DBからバージョンを取得するようになったりしても
> 仕様を満たしてるかどうかを確認できる
重要なのはなにをテストしているのかをきっちり理解することですよ
バージョン番号が書いてあるところがファイルでも変数でも関係ないですが、
1.0.0と書いたものが、1.0.0であることをテストしたいのか?
それとも、バージョン番号が正しく取得できることをテストしたいのか?
1.0.0と書いたものが1.0.0であることとかアホらしいですよねw
そう書いたんだから、そう取得できるのは当たり前
これは単なるデータの二重管理に過ぎません。
重要なのは、バージョン番号が正しく取得できることなのですよ。
具体的なデータ(バージョン番号)はダミーデータで十分です。
まずテストコードでそのダミーデータ(例えば0.0.1)を
変数なり、ファイルなり、DBなりに格納します。
そしてそれがgetVersion()で正しく取得できることテストするのです。
そうすりゃ、getVersion() == 1.0.0
あ゛〜、バージョンが上がっちまったー、VERSIONファイルと
テストコードの両方を1.1.0に修正しなきゃーなんて
アホなメンテは必要なくなるなるわけです。
> 今は単純文字列を返す実装だから無意味に感じるのだろうが
> リファクタして設定ファイルからバージョンを取得するようにしたり
> DBからバージョンを取得するようになったりしても
> 仕様を満たしてるかどうかを確認できる
重要なのはなにをテストしているのかをきっちり理解することですよ
バージョン番号が書いてあるところがファイルでも変数でも関係ないですが、
1.0.0と書いたものが、1.0.0であることをテストしたいのか?
それとも、バージョン番号が正しく取得できることをテストしたいのか?
1.0.0と書いたものが1.0.0であることとかアホらしいですよねw
そう書いたんだから、そう取得できるのは当たり前
これは単なるデータの二重管理に過ぎません。
重要なのは、バージョン番号が正しく取得できることなのですよ。
具体的なデータ(バージョン番号)はダミーデータで十分です。
まずテストコードでそのダミーデータ(例えば0.0.1)を
変数なり、ファイルなり、DBなりに格納します。
そしてそれがgetVersion()で正しく取得できることテストするのです。
そうすりゃ、getVersion() == 1.0.0
あ゛〜、バージョンが上がっちまったー、VERSIONファイルと
テストコードの両方を1.1.0に修正しなきゃーなんて
アホなメンテは必要なくなるなるわけです。
131 == 12
2017/09/10(日) 08:38:12.02ID:G4ZVCKWZ >>12の考え方はすごく重要で、これを理解していないために
無意味なテストをしていることが多い。
ロジックではなくデータをテストしている。
書いたものがそう書いてあるか?だけを調べている
無意味なテストが極めて多い。
無意味なテストをしていることが多い。
ロジックではなくデータをテストしている。
書いたものがそう書いてあるか?だけを調べている
無意味なテストが極めて多い。
2017/09/10(日) 08:38:50.50ID:G4ZVCKWZ
つまりテストを書くときはダミーデータを使うということですね。
2017/09/10(日) 10:49:50.23ID:1MFrqOnc
ダミーだこりゃ
レスを投稿する
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 人生に飽きた
- 【画像】自分がオッサンか若者か、5秒で判断できる画像がこれらしい [977261419]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- お
