Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 每个规格的Jasmine多期望与每个规格的单个期望大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始使用Jasmine测试,angularjs,但很快我开始想知道哪种方法是好的,为什么?我选择了每个规格的单一期望.我喜欢它,因为非技术人员可以更好地理解它,嗯,这是BDD的重点,不是吗?例如

describe('TesTing multple expect per spec My service',function() {
 beforeEach(/* some stuff*/);
   it('test part ',function(){
       expect('Part 1').toBe('part one'); // 
       expect('part 2').toBe('part two'); // some crazy stuff,just for example
     }
}

describe('TesTing single expect per spec My service',function() {
     beforeEach(/* some stuff*/);
       it('test part  one ',function(){
           expect('Part 1').toBe('part one'); // just for example
         }
       it('test part  two ',function(){
            expect('part 2').toBe('part two'); // just for example
         }
}

但很快遇到麻烦,我意识到beforeEach实际上正在重新设置/创建我的服务的新对象(上面的示例中没有显示),因此封装的行为没有正确反映.@H_618_10@

例如,我正在测试注入服务的firstMethod()部分,它改变了服务的数据结构,’测试第一部分’,然后在第二个规范中我正在测试secondMethod(),它测试更改数据结构. ‘测试第二部分’.但是由于beforeEach重新注入我的服务,’测试第二部分’失败了.我怎样才能解决这种情况?@H_618_10@

在这里帮助Jasmine新手.@H_618_10@

解决方法

您的单元测试应该彼此独立.否则,如果测试2失败,您不知道方法2中是否存在问题,或者方法1中是否存在设置问题.

要处理这种情况,您可以在测试2开始时进行一些额外的设置,以确保服务处于任何必要的状态,以便测试方法2中的逻辑.如果多个测试需要该设置,您可以将其放入嵌套的describe和beforeEach.@H_618_10@

正如@ktharsis指出的那样,只要他们验证相同的“行为”,每个规格的多个预期都是正常的.每个测试应该对应一个行为,不一定是一个断言.@H_618_10@

大佬总结

以上是大佬教程为你收集整理的angularjs – 每个规格的Jasmine多期望与每个规格的单个期望全部内容,希望文章能够帮你解决angularjs – 每个规格的Jasmine多期望与每个规格的单个期望所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。