私は最終的に非常に単純なエンドツーエンドのテストを完了することができました。
scenario.jsでは:
describe('My app', function () {
beforeEach(function () {
browser().navigateTo('/');
});
describe('On Load', function () {
it('Textbox should be blank', function () {
expect(input('textbox').val()).toBe('');
});
});
});
私のrunner.htmlは次のようになります。
<head>
<title>End2end Test Runner</title>
<script src="/js/libs/angular-scenario.js" ng-autotest></script>
<script src="/js/libs/angular-mocks.js"></script>
<script src="/js/test/e2e/scenarios.js"></script>
</head>
これにより、サイトが起動し、ナビゲートされ、入力が空白であることを確認します。エース。
ただし、これまでの内容を拡張するこのテストを追加したいと思います。
describe('Click on Add', function () {
it('will add new item if valid', function () {
input('newItemName').enter('Test Item');
element('#add').click();
expect(input('newItemName').val()).toBe('');
expect(repeater('#items li').count()).toEqual(1);
});
});
しかし、このテストを実行する前に、アプリが依存しているストレージ サービスをモックしたいと思います。
これが私のコントローラー定義です:
myapp.controller('MyController', ['$scope', '$routeParams', '$filter', 'storage',
function ($scope, $routeParams, $filter, storage) {
. . . .
}
]);
私はこのようなことをしたいので、これは私に問題を引き起こしています(私は思う):
describe('Controller Unit Tests', function(){
var ctrl;
beforeEach(function(){
ctrl = new MyController();
});
it('should ....', function() {
expect(true).toBe(true);
});
});
しかし、コントローラーを宣言する方法が原因でできません。そして、私がコントローラーをそのように宣言している理由は、縮小目的のためです...
この問題を解決する方法について誰かアドバイスがありますか?!