Qiita:Teamに投げた社内ドキュメントだったけど、特に問題ないのでQiitaにも投げる。 前提として browserify-rails とbabelify が導入されている状況を想定してる。 基本方針 新規コードはES2015で書く 本番はbrowserify(-rails)でコンパイルする。 単体テストは node 環境下で走らせる テスト環境下では jsdom で window, document をモックする 単体テストでは ブラウザ特有の挙動はテストしない 裏側の環境(browserifyやspec-helper)は難しくして良いが、利用者からみえる範囲は複雑にしない(npm install; npm testで走る) Universal JavaScript に寄せることでコードのポータビリティを上げる 事前準備 browserify-railsを導入する。 .babelr
![テストがないJS環境にモダンなテスト環境を導入していく - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2df876e07bb2dac03f4b2a9cc64ceae2b3c618a4/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9JUUzJTgzJTg2JUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgxJThDJUUzJTgxJUFBJUUzJTgxJTg0SlMlRTclOTIlQjAlRTUlQTIlODMlRTMlODElQUIlRTMlODMlQTIlRTMlODMlODAlRTMlODMlQjMlRTMlODElQUElRTMlODMlODYlRTMlODIlQjklRTMlODMlODglRTclOTIlQjAlRTUlQTIlODMlRTMlODIlOTIlRTUlQjAlOEUlRTUlODUlQTUlRTMlODElOTclRTMlODElQTYlRTMlODElODQlRTMlODElOEYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWZjMWM1NGMzNGRjNzg4M2ZiNTNiOWUyNjA3MGFkNzBk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbWl6Y2hpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04YTUwN2I0MDFmMDRhMzM1YzQ4NmVjMWRkMjZjZWJmOQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D71f55056ba26030c81043229ad0bf2e0)