我已经开始使用Quick和Nimble为iOS编写我的第一个BDD测试,我对测试覆盖率有疑问.
我意识到在传统的单元测试中,开发人员的目标是获得100%的测试覆盖率.但是,我没有读过BDD的内容.如果我正确理解BDD,当我测试代码的行为时,那么实现的细节并不重要; 重要的是我从我的代码中得到了预期的结果,对吗?
我开始尝试获得100%的代码覆盖率,但似乎我开始编写脆弱的测试,因为我没有关注代码的结果,而是试图涵盖我的代码可以采用的所有路径.
正如其中一篇评论中所提到的,BDD 的核心方面是为您提供测试(可以自动化),以确保您的产品完全按照预期的方式进行.显然:"不低于那个".
从这个意义上讲,BDD 加上覆盖率可以帮助您确保您的产品没有做更多的事情.
换句话说:假设您的所有BDD测试通过; 并且您的覆盖率为75%...而这可能意味着:为了提供BDD测试用例中指定的行为,不需要 25%的代码库.含义:您可以仔细查看那些25%未触及的线条,以了解为什么不需要它们; 然后确定是否有机会删除未使用的源代码的相同部分.
如:作为软件开发人员,您可以做的第二件事:从代码库中删除代码,而不会降低产品的功能.
(并且为了记录:SW开发人员可以做的最好的事情:为他的产品添加新功能以吸引新客户 - 从长远来看,删除代码有助于提高质量,但客户支付短期,中期和长期工资)