2015-09-07 3 views
1

Я включил жасмин в угловом проекте, и я пытаюсь подключить файл спецификации к файлу с моими угловыми контроллерами (чтобы я мог выполнять модульные тесты). Проблема в том, что я не совсем уверен, как это сделать.Тестирование жасмина с угловым JS

Это то, что иерархия папок для моего проекта выглядит следующим образом:

project_folder/index.html 
project_folder/js/controllers.js 
project_folder/lib/jasmine/jasmine-standalone-2.3.4/spec/challengeSpec.js 

В настоящее время я хочу тесты для файла controllers.js (с угловым кодом), чтобы быть в файле challengeSpec.js. Как я могу принести модули из файла controller.js и использовать их в своих тестах? Это то, что часть коды из каждого файла выглядит следующим образом:

controllers.js file: 

var siteControllers = angular.module('siteControllers', []); 
    fibonacciControllers.controller('pageController', ['$scope','$http', function ($scope, $http) { 
    ... 
}); 

challengeSpec.js file: 

describe('siteControllers', function() { 
    beforeEach(module('siteControllers')); 
}); 

Я знаю, что в том challengeSpec.js файл мне нужно принести в модулях из файла controllers.js, но я не уверен, как это можно сделать. Я занимаюсь некоторыми исследованиями, которые предполагают, что я использую Карму, но я не совсем уверен, как это вписывается в уравнение здесь. Заранее спасибо.

ответ

1

Ваша тестовая спецификация, похоже, находится в хорошем начале, но вы не должны помещать файл в том месте, где вы это делали. Использование Кармы необходимо, так как это «испытательный бегун». Для полной истории из a-z я бы попробовал прочитать это https://www.airpair.com/angularjs/posts/unit-testing-angularjs

+1

Так что нет возможности использовать только Жасмин? Каким будет автономная структура Jasmine для этого, просто для ванильного javascript и без рамки? – bcan001

+2

правый. Карма знает об особенностях AngularJs, таких как обещания, поэтому вы его используете. – Maarten