テストの視点で考えると「切り替えたいスタイルが変わったとき」に、

* クラス名をjsに書く -> テストも修正必須
* data属性 -> テストの修正不要

という違いがあるか。