1
您好,我需要幫助編寫此控制器功能的測試。我認爲我很接近,但我一直在期待undefined等於{entityId:2,page:19,length:200}。這似乎很奇怪,因爲我有另一個幾乎相同的測試。如果任何人可以發現錯誤或有任何一般性的測試建議,我會非常感激。單元測試控制器 - 需要第二雙眼睛
謝謝!
$scope.getAll = function (page, length) {
accountService.getAccounts(global.activeOrganizationId, page, length).then(function (data) {
$scope.accounts = data;
});
};
這是我迄今爲止
describe('AccountsController', function() {
//make module avalible to tests
beforeEach(module('pb.accounts.controllers'));
beforeEach(module('ui.router'));
beforeEach(module('ui.bootstrap'));
var $controller;
var mockGlobal = { activeOrganizationId: 0 };
var mockStateParams = { orgId: 1, entityId: null };
var mockForm = {};
var mockAccountSrv = {
account: {
entityId: 2,
page: 19,
length: 200
}
};
// instantiating controller
beforeEach(inject(function (_$controller_) {
// The injector unwraps the underscores (_) from around the parameter names when matching
$controller = _$controller_;
}));
describe("getAll() function", function() {
var controller, scope;
beforeEach(inject(function ($q) {
mockAccountSrv.getAccounts = function (entityId, page, length) {
var defer = $q.defer();
defer.resolve(this.account);
return defer.promise;
};
}));
// sets scope of controller before each test
beforeEach(inject(function ($rootScope) {
scope = $rootScope.$new();
controller = $controller('AccountsController',
{
$scope: scope,
$stateParams: mockStateParams,
global: mockGlobal,
accountService: mockAccountSrv
});
}));
it("make sure service promise resolves", function() {
scope.getAll(mockAccountSrv.account.page, mockAccountSrv.account.length);
scope.$digest();
expect(scope.account).toEqual(mockAccountSrv.account);
});
});
難道是你正在測試'scope.account'而數據到'$ scope.accounts'(最後的「s」)? – 2015-01-09 20:11:26