BDD 和测试覆盖率

BDD & Test Coverage

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

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

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

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

如评论之一所述,BDD 的核心 方面是为您提供测试(可以自动化),以保证您的产品完全按照它的方式进行操作应该做的。显然:"not less than that".

从这个意义上讲,BDD plus 覆盖范围可帮助您确保您的产品不会 做得更多。

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

如:第二个最好的事情 作为软件开发人员,您可以做的事情:从代码库中删除代码而不减少产品的功能。

( 郑重声明:软件开发人员可以做的 最好的 事情:向他的产品添加新功能以吸引新客户 - 删除代码有助于提高质量长期 运行,但客户会支付你的短期、中期和长期工资 )