Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails脚手架的测试驱动开发(TDD)_Ruby On Rails_Ruby On Rails 4_Tdd - Fatal编程技术网

Ruby on rails 使用Rails脚手架的测试驱动开发(TDD)

Ruby on rails 使用Rails脚手架的测试驱动开发(TDD),ruby-on-rails,ruby-on-rails-4,tdd,Ruby On Rails,Ruby On Rails 4,Tdd,我希望能够更好地理解在Rails 4应用程序中使用TDD的过程 到目前为止,我在这个主题上找到的最好的帖子是。它建议采取以下步骤: 搭建模型 为模型-->测试创建单元测试失败 为模型-->测试通过创建迁移 用期望的动作构建控制器 为控制器创建功能测试-->测试失败 将代码添加到控制器操作-->测试通过 为视图创建功能测试-->测试失败 创建视图-->测试过程 这种方法只需railsgscaffoldfoo就可以完成更多的工作。但是使用架子工会导致测试(如果构建的话)通过,这违反了核心TDD原

我希望能够更好地理解在Rails 4应用程序中使用TDD的过程

到目前为止,我在这个主题上找到的最好的帖子是。它建议采取以下步骤:

  • 搭建模型
  • 为模型-->测试创建单元测试失败
  • 为模型-->测试通过创建迁移
  • 用期望的动作构建控制器
  • 为控制器创建功能测试-->测试失败
  • 将代码添加到控制器操作-->测试通过
  • 为视图创建功能测试-->测试失败
  • 创建视图-->测试过程
这种方法只需
railsgscaffoldfoo
就可以完成更多的工作。但是使用架子工会导致测试(如果构建的话)通过,这违反了核心TDD原则

我还读到,不应该测试框架提供的功能(例如,
的单元测试验证
的存在)


这让我不禁要问:我应该跳过架子工生成的代码的单元测试和功能测试,只测试我的自定义设置,还是应该遵循博客作者使用的逐层模式?

如果我正确理解了你的问题,这篇文章提供了一个非常简洁的答案:


本质上,它的信息是,您应该只测试与脚手架生成的行为不同的内容,因为脚手架生成的测试太简单,没有用处。

您想使用脚手架做什么?它们只生成执行CRUD操作的最基本代码,生成的测试远远不值得使用。(阅读您提供的链接:它是从2007年开始的,使用的Rails版本甚至比Rails 2更旧,并且没有提到使用脚手架?@yerforkferchips:是的,我意识到脚手架是相当基本的,它的测试没有用处。但对于Rails 4,这是一个不错的起点,可以节省时间并消除遗漏。是的,这篇文章很古老,但仍然描述了一个过程。我引用这篇文章是为了对比脚手架和可能的工作流程。