AngularJSとTestacularのE2EテストではJasmineの.notの代わりに.not()を使う
Jasmineの.notを使って下のようなテストを書くと、
expect(element('[ng-view] div#menu1 table > tbody > tr:first > td:first').text()). not.toBe("");
toBeメソッドがないというというエラーが出てテストが成功しません。(scripts/e2e-test.shを実行するとエラーが表示されないので、test/e2e/runner.htmlにアクセスしてテストを実行します)
Object function () { return executeStatement.call(self, value, arguments); } has no method 'toBe' TypeError: Object function () { return executeStatement.call(self, value, arguments); } has no method 'toBe' at Object.<anonymous> (http://localhost:8000/test/e2e/scenarios.js:32:13) at Object.angular.scenario.SpecRunner.run (http://localhost:8000/test/lib/angular/angular-scenario.js:25188:15)
おかしいなあと思って調べてみると、angular-seedのドキュメントのEnd to end testingの項に「your app and allows you to write your tests with jasmine-like BDD syntax.」って書いてありますね。
Jasmineだと思っていたものはAngularJSがAPIを似せて作ったものだったようです。なので、.notではなくて.not()を使うのが正しいです。