我有一个使用这个模块bxAuth模块的测试,我要求它是这样的:
beforeEach(module('bxAuth'));
必须配置此模块才能工作。所以我有一个测试,在未配置模块时会出现错误,并测试在配置后检查模块服务是否按预期工作(每个场景都有自己的描述块)。
但是,如果我这样配置模块(仅在第二个描述块中):
angular.module('bxAuth').config(ConfigureAuth);
我的模块在所有描述块中都配置了,所以基本上它总是被配置的。
这是一个完整的代码:
describe('not configured bxAuth module', function() {
beforeEach(module('bxAuth'));
var bxAuth;
beforeEach(inject(function (_bxAuth_) {
bxAuth = _bxAuth_;
}));
it('should throw exception without cofiguration', function () {
expect(bxAuth.authenticate).toThrow(); // **this expectation fails**
});
});
describe('configured bxAuth module', function () {
beforeEach(module('bxAuth'));
var bxAuth;
beforeEach(inject(function (_bxAuth_) {
bxAuth = _bxAuth_;
}));
angular.module('bxAuth').config(ConfigureAuth);
function ConfigureAuth(bxAuthProvider) {
bxAuthProvider.config.authenticate = function (username, password) {
var deferred = angular.injector(['ng']).get('$q').defer();
/* replace with real authentication call */
deferred.resolve({
id: 1234,
name: 'John Doe',
roles: ['ROLE1', 'ROLE2']
});
return deferred.promise;
}
}
it('should not throw exception with cofiguration', function () {
expect(bxAuth.authenticate).not.toThrow();
});
});