请您帮我找到以下问题的解决方案。 我有一个函数和相应的Jasmine测试用例,如下所示。 如果我在我的函数中使用angular.copy(我只需要使用它),Jasmine测试用例就会失败,并且会出现错误,并且会出现错误' originalValue'等于“新价值”#39; 如果我使用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');
});
答案 0 :(得分:0)
您提供的示例不正确。
it('xxxx', function(){
var obj = {'prop': 'orignialValue'};
func(param, 'newValue', true);
expect(obj.prop).toEqual('newValue');
});
param在这里没有定义,这应该是obj我假设。
由于您使用angular.copy,因此不会将refj.prop添加到param1。
答案 1 :(得分:0)
我找到了解决方案。我没有在函数func中做angular.copy,而是先做angular.copy然后将这个复制的对象作为第一个参数(param1)传递给函数func。