angular.copy Jasmine 测试用例问题
angular.copy issue with Jasmine Test case
请您帮我找到以下问题的解决方案。
我有一个函数和相应的 Jasmine 测试用例,如下面所写的那样。
如果我在我的函数中使用 angular.copy(而且我必须只使用它),Jasmine 测试用例会失败并且显示的错误预计 'originalValue' 等于 'newValue'。
如果我使用 var obj = param1(而不是 angular.copy),那么 Jasmine 测试用例会成功执行。
我必须使用 angular.copy 并同时希望 jasmine 测试用例通过。请帮忙。
函数
function func(param1, param2, condition)
{
var obj = angular.copy(param1);
if(condition){
obj.prop = param2;
}
}
茉莉花测试用例
it('xxxx', function(){
var param = {'prop': ''};
var obj = {'prop': 'orignialValue'};
func(param, 'newValue', true);
expect(obj.prop).toEqual('newValue');
});
您提供的示例不正确。
it('xxxx', function(){
var obj = {'prop': 'orignialValue'};
func(param, 'newValue', true);
expect(obj.prop).toEqual('newValue');
});
这里没有定义param,我猜这应该是obj。
由于您使用 angular.copy,obj.prop 不会被 ref 添加到 param1。
我找到了解决方案。我没有在函数 func 中执行 angular.copy,而是先执行 angular.copy,然后将这个复制的对象作为第一个参数 (param1) 传递给函数 func。
请您帮我找到以下问题的解决方案。 我有一个函数和相应的 Jasmine 测试用例,如下面所写的那样。 如果我在我的函数中使用 angular.copy(而且我必须只使用它),Jasmine 测试用例会失败并且显示的错误预计 'originalValue' 等于 'newValue'。 如果我使用 var obj = param1(而不是 angular.copy),那么 Jasmine 测试用例会成功执行。 我必须使用 angular.copy 并同时希望 jasmine 测试用例通过。请帮忙。
函数
function func(param1, param2, condition)
{
var obj = angular.copy(param1);
if(condition){
obj.prop = param2;
}
}
茉莉花测试用例
it('xxxx', function(){
var param = {'prop': ''};
var obj = {'prop': 'orignialValue'};
func(param, 'newValue', true);
expect(obj.prop).toEqual('newValue');
});
您提供的示例不正确。
it('xxxx', function(){
var obj = {'prop': 'orignialValue'};
func(param, 'newValue', true);
expect(obj.prop).toEqual('newValue');
});
这里没有定义param,我猜这应该是obj。
由于您使用 angular.copy,obj.prop 不会被 ref 添加到 param1。
我找到了解决方案。我没有在函数 func 中执行 angular.copy,而是先执行 angular.copy,然后将这个复制的对象作为第一个参数 (param1) 传递给函数 func。