【问题标题】:angular.copy issue with Jasmine Test caseJasmine 测试用例的 angular.copy 问题
【发布时间】:2015-11-17 05:45:47
【问题描述】:

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

【问题讨论】:

    标签: testing jasmine case


    【解决方案1】:

    您提供的示例不正确。

    it('xxxx', function(){
       var obj = {'prop': 'orignialValue'};
       func(param, 'newValue', true);
       expect(obj.prop).toEqual('newValue');
    });
    

    这里没有定义参数,我假设这应该是 obj。

    由于你使用了 angular.copy,obj.prop 不会被 ref 添加到 param1。

    【讨论】:

    • 嗨,通过定义参数编辑示例。由于我只能使用角度复制,我的 it 块有什么方法可以成功执行吗?请帮忙。谢谢。
    【解决方案2】:

    我找到了解决方案。我不是在函数 func 中执行 angular.copy,而是首先执行 angular.copy,然后将此复制的对象作为其第一个参数(param1)传递给函数 func。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2018-01-22
      • 1970-01-01
      • 2016-10-11
      相关资源
      最近更新 更多