与Jasmine测试用例的angular.copy问题

时间:2015-11-17 05:45:47

标签: testing jasmine case

请您帮我找到以下问题的解决方案。 我有一个函数和相应的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');
});

2 个答案:

答案 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。