TOP > IT・テクノロジー > Qiita > idやclass...

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

29コメント 登録日時:2017-11-19 03:55 | Qiitaキャッシュ

いきなり結論を書くと、idやclassはスタイルのためのものなので、テストでそれを使うのはやめましょう。そして、カスタムデータ属性を使いましょう。先に断っておくと主にreactについての話で、JSXを前提とします。(手法はReactに限りませんが理由は後述)はじめにご存知の通り、ロジックとスタイルは別物です。もしスタイルの変更のためにclass名を変えて、ロジックのテストが落ちるなんてことはあ...

Twitterのコメント(29)

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のテストについて記事を書いた
以上

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