AngularJSで$sceを使ってるフィルタなんかのテスト
$sceをDIしてるやつ、例えばこちらのようなののテストを書く場合。
# newlines_spec.coffee "use strict" describe "Filter: newlines", -> beforeEach module "myApp" newlines = {} beforeEach inject ($filter) -> newlines = $filter "newlines" it "\nを<br />に変換して返すこと", -> text = "angularjs\nnewlines" expect(newlines(text)).toBe ("angularjs<br />newlines")
単純にこんな感じに書くと、下記のようなメッセージで失敗する
Expected { $$unwrapTrustedValue : Function } to be 'angularjs<br />newlines'.
ので、$$unwrapTrustedValueでexpectしてみた。
# newlines_spec.coffee it "\nを<br />に変換して返すこと", -> text = "angularjs\nnewlines" expect(newlines(text).$$unwrapTrustedValue()).toBe ("angularjs<br />newlines")
テスト通ったけど、$sceProviderをテストの時は無効化するとか、他のやり方のほうがいいんだろうか。
beforeEach module 'myApp',($sceProvider)-> $sceProvider.enabled(false) return