我知道什么是单元测试,但是当我读到测试驱动开发时,我感到困惑。
单元测试是您在代码库之前按照先测试后开发的流程进行的吗?或者这是您在开发中期或开发后所做的事情,因此您只需重构代码库的某些部分(这就是我在项目中所做的)。
我非常感谢任何启发。
测试驱动开发意味着,您在实现新功能之前编写单元测试。通过这种技术,开发人员将专注于仅编写通过测试所需的代码。设计通常比其他方法更干净、更清晰。
但是与普通的单元测试相比,开发人员需要更多的经验来遵循这种技术。在开始编码之前(这始终是更好的方法),您需要了解实现,包括了解此需求所涉及或所需的所有层。否则之后你将不得不重构大量代码。 我个人喜欢这种方法,但正如我所说,它需要更多的经验。
如果您仅谈论单元测试,那么这应该始终是开发过程的一部分。通常,您是在开发过程中编写测试的,有时是在您认为已经完成的时候。如果您需要重构现有方法,那么首先编写测试以确保不会破坏现有功能也很有用。
一旦您关心该函数是否正常运行,您就应该编写单元测试。如果您正在进行 TDD,这意味着您在编写单元之前先编写单元测试。否则,这意味着您在创建单元本身后不久就编写了测试。
您关于何时执行单元测试的问题是一个常见问题,很高兴您希望澄清软件开发的这一方面,特别是在测试驱动开发 (TDD) 的背景下。
单元测试是 TDD 的关键部分,TDD 背后的想法是在实际编写代码本身之前为要实现的功能编写测试。这意味着您遵循“测试优先”的方法,在代码之前进行单元测试。
TDD 的典型流程是这样的:
为您想要实现的特定功能编写失败的单元测试。
编写代码以使测试通过。这通常称为“实施”阶段。
如果需要,重构代码,同时确保您的测试仍然通过。
重复此循环以获得下一个功能。
单元测试应该在开始实施之前编写,它们充当代码的规范。它们有助于确保您的代码按预期工作,并且还可以作为其他开发人员(包括未来的您)的文档,以了解代码的行为方式。
但是,这并不意味着单元测试仅限于 TDD。您还可以在开发后执行单元测试,特别是当您希望确保现有代码库在进行更改或添加时继续工作时。在这种情况下,您可以编写测试来验证您的代码在重构或修改后是否仍能正确运行。
我发现这篇关于软件开发过程的文章可能会让您更深入地了解不同的测试实践何时以及如何融入软件应用程序开发过程。
总之,单元测试是一种有价值的实践,可以在开发之前(在 TDD 中)和开发之后使用,以保持代码质量和可靠性。何时执行单元测试的选择很大程度上取决于您的项目、团队的实践和您的具体目标。如果您还有其他问题或需要进一步说明,请随时询问。