我有一个用PHP和Javascript编写的大型项目。问题是,它变得如此庞大和不可维护,以至于更改代码的一些小部分将使其不愉快,而且可能会破坏大量其他部分。
我在测试自己的代码方面真的很糟糕(事实上,其他人每天都会指出这一点),这使得维护项目变得更加困难。
项目本身并不是那么复杂或复杂,更多的是它的构建方式使它变得复杂:我们在进行测试时没有预先定义的规则或列表。这通常会导致大量的bug和不愉快的客户。
我们开始在办公室讨论这个问题,并提出了开始使用测试驱动开发的想法,而不是像地狱一样的开发,或者以后再进行测试(这几乎总是总是修复bug)。
在此背景下,我需要帮助的事情如下:
我以前从未使用过单元测试,所以对我来说,这是一个未知的领域。
发布于 2009-11-30 15:44:37
G‘’day,
编辑:--我刚刚快速浏览了"单元测试的艺术“的第一章,它也可以作为免费PDF在图书网站上使用。它将为您提供一个很好的概述,您正试图做什么与一个单元测试。
我假设您将使用xUnit类型框架。一些初步的高层想法是:
我会增加更多的点,因为我认为他们。
HTH
发布于 2009-11-30 15:46:42
你应该给自己买一本有效地使用遗产代码。这将为您提供关于如何将测试引入未编写用于测试的代码的良好指导。
TDD很棒,但是您确实需要首先测试现有代码,以确保您所做的更改不会在引入更改时更改现有的所需行为。
然而,现在引入TDD会使您在返回之前慢很多,因为改造测试,即使是在您正在更改的区域,也会在变得简单之前变得更加复杂。
发布于 2009-11-30 16:17:25
为了补充其他优秀的答案,我同意在一次访问中从0%到100%的覆盖率是不现实的--但是每次修复bug时,您绝对应该添加单元测试。
您说有相当多的bug和不愉快的客户--我会非常肯定地将严格的TDD集成到错误修复过程中,这比全面实现它容易得多。毕竟,如果确实存在一个需要修复的bug,那么创建一个可以复制它的测试就可以达到不同的目标:
向现有项目引入测试是困难的,而且可能是一个漫长的过程,但是在修复bug的同时进行测试是这样做的理想时机(与在“正常”意义上逐步引入测试的同时),如果不抓住这个机会并从bug报告中制造柠檬水,那将是一种耻辱。:-)
https://stackoverflow.com/questions/1820505
复制相似问题