TOP > IT・テクノロジー > idやclassを使ってテストを書くのは、もはやアンチパターンである - Qiita

idやclassを使ってテストを書くのは、もはやアンチパターンである - Qiita

39コメント 2017-11-19 03:55  Qiita

いきなり結論を書くと、idやclassはスタイルのためのものなので、テストでそれを使うのはやめましょう。そして、カスタムデータ属性を使いましょう。先に断っておくと主にreactについての話で、JSXを...

ツイッターのコメント(39)

これめちゃくちゃ勉強になった
記事が更新されてた。最近enzymeからTesting Libraryに置き換えしてる
これ良いな。
いや、マジで。
わかる…!data属性使うといいかも、てちょうどこないだフロントランチで話していた。プロダクションビルドでは取り除くの、よさそう!
>>
仕組みとしては簡易だけどテストのためにコードに手を入れるのは抵抗があるにゃんねえ… / -
data属性でもclass属性にprefixつけてでもいいけれど、明確に分けるのがいいのだろうか? 使えるところはそのまま使い、指定が必要な場合だけ、となることが多そうでチーム内でルールを決めないとちょっと煩雑になるかもしれないのかな?
@agata これでした!
data-testについて。滅茶苦茶勉強になる。
なるほど、テスト用のカスタムデータ属性か🤔
わかりが深い… / -
せやな。 /
そうそうこういう情報も見たかった。自分の中でルールを決めてそれに適合するツールを見つけるor作らないといけない。
うちでもコレやりたい。
どこから手を付けるかなぁ…ってなってる(´ . .̫ . `)
まぁぼちぼち改善するしかないのう。
実際にクラスを使ってテストを書いていると、この内容はやはり妥当な気がする。クラスではなくテスト専用の属性を持たせて、ビルド時にはそれを削除する。/
昨日、これやりかけてたけどやっぱイマイチだったか。
JSのテストってみんな、どうしているんだろう?むしろ、LTで聞きたい!
個人的にはわかりやすいし除去できるなら別に問題ない気がするけどなーと思ってからブコメみたら「なるほど、確かに…」みたいな気持ちになった。複雑すぎるフロントエンドに問題があるのでは?という気持ち。 / “idやclassを使ってテ…”
「なるほど…」とは思うものの、「とは言ってもね…」とも思った。

@akameco on @Qiita
良いと思う。" @akameco on @Qiita "
見てる →
idやclassを使わないのは賛成。フォームの名前に関しては実装と関連してるので *[name="email"] とかで探すようにしてる /
なるほどね。トランスパイル時に消せるのか/
そういえばjQueryあまり使わなくなってJavaScriptのためにclass書くことかなり減ったなー ⇒ @akameco on @Qiita
testって文字列が配信されんのやだな。data-でやるのは良さそう。って後で気づいたけど、この属性をプロダクション環境では出さないってできんの?すごいな。 / “idやclassを使ってテストを書くのは、もはやアンチパターンで…”
参考記事の最後に「なぜidを使わないのか?」に対するQ&Aが掲載 されている。個人的にはidで管理しても結局'test-○○'のようなprefixを付与する事になる可能性が高いので、それだったらdata属性の方が筋が良い かなと。
やっぱりそうだよね。
筋がいい........。これからそうしたい @akameco on @Qiita
テストの為にidやclassを使うなと言う結論には同意。だが "idやclassはスタイルのためのものなので" は違う
data-test属性をテスト用に付けて、本番環境では不要なので消すと。なるほど。 /
別にdata属性でなくても、テストからのDOM参照専用の何かがあればなんでもいいと思う: @akameco
寝れないのでreactのテストについて記事を書いた
以上
 

いま話題のニュース

もっと読む
PR