angularjs – 每个规格的Jasmine多期望与每个规格的单个期望
发布时间:2020-12-17 17:14:58 所属栏目:安全 来源:网络整理
导读:我开始使用Jasmine测试,angularjs,但很快我开始想知道哪种方法是好的,为什么?我选择了每个规格的单一期望.我喜欢它,因为非技术人员可以更好地理解它,嗯,这是BDD的重点,不是吗?例如 describe('Testing multple expect per spec My Service',function() { be
我开始使用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实际上正在重新设置/创建我的服务的新对象(上面的示例中没有显示),因此封装的行为没有正确反映. 例如,我正在测试注入服务的firstMethod()部分,它改变了服务的数据结构,’测试第一部分’,然后在第二个规范中我正在测试secondMethod(),它测试更改数据结构. ‘测试第二部分’.但是由于beforeEach重新注入我的服务,’测试第二部分’失败了.我怎样才能解决这种情况? 请在这里帮助Jasmine新手. 解决方法
您的单元测试应该彼此独立.否则,如果测试2失败,您不知道方法2中是否存在问题,或者方法1中是否存在设置问题.
要处理这种情况,您可以在测试2开始时进行一些额外的设置,以确保服务处于任何必要的状态,以便测试方法2中的逻辑.如果多个测试需要该设置,您可以将其放入嵌套的describe和beforeEach. 正如@ktharsis指出的那样,只要他们验证相同的“行为”,每个规格的多个预期都是正常的.每个测试应该对应一个行为,不一定是一个断言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Bash将一大块文本回显到文件中
- angularjs – OnsenUi Angular和Login
- typescript – Angular 2 – 在* ngFor和ngModel中访问/获取
- Bootstrap研究1-精巧的网格布局系统
- scala – 运行Akka Microkernel时获取命令行参数?
- SuperPlan(8)TaoBao Winner - UI BootStrap - Base CSS
- 摆脱Vim折叠名称的下划线
- Angular2入门系列(一)————如何在Angular2中使用jQuer
- Angular 2:如何强制注射成为应用程序中的单例
- Unity3d中调用webservice方法