與噶

2014-03-31 22 views
0

控制器觸發功能在一個角控制器我有我的範圍功能,看起來像這樣:與噶

$scope.myFunction = function(val) { 
$scope.myVar = val; 
$scope.mySettings.myPath = $scope.myBase + $scope.myVar; 
} 

在我的人緣單元測試我想用一個觸發控制器上的功能價值我提供...然後檢查$ scope.mySettings.myPath,以確保它是我認爲它應該是。

林因果報應試圖此:

describe("Unit Testing: Controller Testing" , function() { 
describe('myController' , function() { 
var scope,ctrl; 

beforeEach(module('myApp.controllers')); 
beforeEach(inject(function($rootScope, $controller) { 
scope = $rootScope.$new(); 
ctrl = $controller('myController', { 
$scope: scope 
}); 
})); 

it('should have a working changeVideo function' , function(){ 
scope.changeVideo(scope.myVar[6]); 
expect(scope.mySettings.myPath).to.equal('Expected String'); 
}); 
}); 
}); 

我看到的錯誤是,它無法調用未定義的平等法。這很奇怪,因爲scope.mySettings.myPath實際上是在控制器中預定義的,所以它不應該是未定義的。

爲了給出一些背景,我可以從業力訪問控制器和範圍。儘管如此,這個人仍然在困擾着我。

+0

您可以發佈完整測試嗎? –

+0

是不是'toEqual()'?或簡單地'toBe()' –

+0

我發佈了一個更完整的測試編輯 – Deslyxia

回答

0

解決方案是使用toEqual()代替to.equal()