Ruby on rails Buggy Rails应用程序:测试还是重构?

Ruby on rails Buggy Rails应用程序:测试还是重构?,ruby-on-rails,testing,refactoring,project-management,Ruby On Rails,Testing,Refactoring,Project Management,当我们使用这个应用程序时,它几乎没有测试,现在有黄瓜测试覆盖了最重要的部分。我们不确定该应用程序是否正常工作,并且在开发过程中发生了许多灾难,其中大多数是由从未发现的bug引起的。在视图中生成HTML和PHP的模型中,代码非常难看。有许多无关的模型和控制器可以大大简化或消除。我的问题是,什么时候在不测试以前的功能的情况下简单地重构代码更好?由于截止日期的限制,当我们知道测试不好并且可以很容易地消除时,很难证明花时间覆盖所有现有代码是合理的。我猜这是一个客户项目。我的方法是编写cumber测试,只

当我们使用这个应用程序时,它几乎没有测试,现在有黄瓜测试覆盖了最重要的部分。我们不确定该应用程序是否正常工作,并且在开发过程中发生了许多灾难,其中大多数是由从未发现的bug引起的。在视图中生成HTML和PHP的模型中,代码非常难看。有许多无关的模型和控制器可以大大简化或消除。我的问题是,什么时候在不测试以前的功能的情况下简单地重构代码更好?由于截止日期的限制,当我们知道测试不好并且可以很容易地消除时,很难证明花时间覆盖所有现有代码是合理的。

我猜这是一个客户项目。我的方法是编写cumber测试,只覆盖项目的行为,然后编写RSpec实现测试,覆盖您将要编写的新代码


让客户端在行为测试上签字,这样,当您开始更改实现时,您可以确保您没有彻底修改应用程序的行为。然后,为您希望拥有的代码编写测试,并进行重构,直到测试都是绿色的。

我猜这是一个客户机项目。我的方法是编写cumber测试,只覆盖项目的行为,然后编写RSpec实现测试,覆盖您将要编写的新代码


让客户端在行为测试上签字,这样,当您开始更改实现时,您可以确保您没有彻底修改应用程序的行为。然后,为您希望拥有的代码编写测试,并进行重构,直到测试都是绿色的。

如果很难证明用测试覆盖更多代码是合理的,那么如何证明重构是合理的(在这种情况下,我想这意味着实际上要重新编写代码)?重构可以在修复bug和添加功能的同时进行,但在大型代码库上编写测试实际上意味着停止所有开发。为什么编写测试会完全停止开发?我们有一个庞大的代码库,在那里我们一直在努力提高测试覆盖率,而这在最初几乎是不存在的。开发人员成功地将时间花在编写测试以及在紧凑的发布时间表上添加新功能上。当我们第一次得到这个项目时,我们花了一个多月的时间编写cumber测试。这非常有用,但它只涵盖了核心功能。如果我们想要接近100%的测试覆盖率,我们将不得不暂时放弃我们正在做的一切。如果很难证明用测试覆盖更多的代码是合理的,那么如何证明重构是合理的(在这种情况下,我想这意味着实际上要重新编写代码)?重构可以在修复bug和添加功能的同时进行,但在大型代码库上编写测试实际上意味着停止所有开发。为什么编写测试会完全停止开发?我们有一个庞大的代码库,在那里我们一直在努力提高测试覆盖率,而这在最初几乎是不存在的。开发人员成功地将时间花在编写测试以及在紧凑的发布时间表上添加新功能上。当我们第一次得到这个项目时,我们花了一个多月的时间编写cumber测试。这非常有用,但它只涵盖了核心功能。如果我们想要接近100%的测试覆盖率,我们将不得不暂时放弃我们正在做的一切。