Angular建议将Jasmine用于他们的测试框架,但是我与Jasmine的合作越多,我就越担心单元测试的脆弱性。当前,我正在使用存根和间谍程序来提供对函数的依赖关系,但是我担心在将功能添加到代码库时测试的行为方式。
例如,当使用dependency = jasmine.createSpyObj(['method1', 'method2'])
进行间谍时,实现新功能时调用dependency.method3()会导致测试失败,因为间谍上不存在method3。
如果我按照the angular guide中所述使用存根,则同样适用,因为我需要使用jasmine.spyOn或类似方法创建存根函数。
理想情况下,这种情况不会导致失败,并且会使我的测试变得异常脆弱。我可以通过模拟整个类接口来解决此问题,但这是不理想的。
有什么办法可以避免这种情况?