如何在单元测试中更改常量值?
How to change contant value in unit test?
我有一个如下所示的单元测试:
describe('my test', function() {
var rootScope, $compile, mConfig;
beforeEach(function() {
module('app');
module(function($provide) {
$provide.value('MyConfig', {myvalue:"first"});
});
inject(function($rootScope, _$compile_,MyConfig) {
rootScope = $rootScope;
$compile = _$compile_;
mConfig = MyConfig;
});
});
it('test contant value', function() {
mConfig.myvalue = "first";
var scope = rootScope.$new();
var element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "first"
expect($scope.value).toBe("one");
// when mConfig.myvalue = "second"
expect($scope.value).toBe("two");
// when mConfig.myvalue = "thrid"
expect($scope.value).toBe("three");
});
});
如何在进行测试的过程中更改常量值?
不确定,但如果您的指令依赖于初始配置值,那么您可以尝试多次创建指令并断言
it('test contant value', function() {
mConfig.myvalue = "first";
var scope = rootScope.$new();
var element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "first"
expect($scope.value).toBe("one");
mConfig.myvalue = "second";
var scope = rootScope.$new();
element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "second"
expect($scope.value).toBe("two");
mConfig.myvalue = "third";
var scope = rootScope.$new();
element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "thrid"
expect($scope.value).toBe("three");
});
我有一个如下所示的单元测试:
describe('my test', function() {
var rootScope, $compile, mConfig;
beforeEach(function() {
module('app');
module(function($provide) {
$provide.value('MyConfig', {myvalue:"first"});
});
inject(function($rootScope, _$compile_,MyConfig) {
rootScope = $rootScope;
$compile = _$compile_;
mConfig = MyConfig;
});
});
it('test contant value', function() {
mConfig.myvalue = "first";
var scope = rootScope.$new();
var element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "first"
expect($scope.value).toBe("one");
// when mConfig.myvalue = "second"
expect($scope.value).toBe("two");
// when mConfig.myvalue = "thrid"
expect($scope.value).toBe("three");
});
});
如何在进行测试的过程中更改常量值?
不确定,但如果您的指令依赖于初始配置值,那么您可以尝试多次创建指令并断言
it('test contant value', function() {
mConfig.myvalue = "first";
var scope = rootScope.$new();
var element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "first"
expect($scope.value).toBe("one");
mConfig.myvalue = "second";
var scope = rootScope.$new();
element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "second"
expect($scope.value).toBe("two");
mConfig.myvalue = "third";
var scope = rootScope.$new();
element = angular.element('<div my-directive></div>');
element = $compile(element)(scope);
// when mConfig.myvalue = "thrid"
expect($scope.value).toBe("three");
});