テストコードとテストデータを分離するためにjasmine-jqueryを導入した。手順は以下。
・installする
npm install karma-jasmine-jquery --save-dev
・karma.conf.js に以下を追加
module.exports = function(config) { config.set({ frameworks: ['jasmine-jquery','jasmine'] files: [ {pattern: 'target/test/fixtures/**', watched: true, served: true, included: false} ], }) }
・テストコードで以下を実行
jasmine.getFixtures().fixturesPath = 'base/target/test/fixtures/';
このfixturesPathをどう設定すればいいかよくわからず困ったが、baseを先頭に付けると、karmaのbasePathからの相対パスになる。 今のところfixturesPathの設定はSpecファイル毎にやらないとだめっぽいので一箇所だけで設定すればいいようにしたい。
・fixtureを読み込むコード
readFixtures("testdata.json")
loadFixturesというメソッドもあるがこちらはHTMLを読み込んでDOMに追加するメソッドっぽい。Stringが欲しいならreadFixturesを使う。
参考: