我开始使用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新手.