BDD和测试覆盖率

Nic*_*hrn 3 bdd unit-testing

我已经开始使用Quick和Nimble为iOS编写我的第一个BDD测试,我对测试覆盖率有疑问.

我意识到在传统的单元测试中,开发人员的目标是获得100%的测试覆盖率.但是,我没有读过BDD的内容.如果我正确理解BDD,当我测试代码的行为时,那么实现的细节并不重要; 重要的是我从我的代码中得到了预期的结果,对吗?

我开始尝试获得100%的代码覆盖率,但似乎我开始编写脆弱的测试,因为我没有关注代码的结果,而是试图涵盖我的代码可以采用的所有路径.

  1. 我能正确理解BDD吗?
  2. 针对100%代码覆盖率的目标是否违背了BDD的目的?

Gho*_*ica 6

正如其中一篇评论中所提到的,BDD 的核心方面是为您提供测试(可以自动化),以确保您的产品完全按照预期的方式进行.显然:"不低于那个".

从这个意义上讲,BDD 加上覆盖率可以帮助您确保您的产品没有做更多的事情.

换句话说:假设您的所有BDD测试通过; 并且您的覆盖率为75%...而这可能意味着:为了提供BDD测试用例中指定的行为,不需要 25%的代码库.含义:您可以仔细查看那些25%未触及的线条,以了解为什么不需要它们; 然后确定是否有机会删除未使用的源代码的相同部分.

如:作为软件开发人员,您可以做的第二件事:从代码库中删除代码,而不会降低产品的功能.

(并且为了记录:SW开发人员可以做的最好的事情:为他的产品添加新功能以吸引新客户 - 从长远来看,删除代码有助于提高质量,但客户支付短期,中期和长期工资)