ruby-on-rails - 如何在现有的 Rails 引擎中生成虚拟应用程序

标签 ruby-on-rails ruby-on-rails-4 rspec rails-engines legacy-code

我最近来到一家公司工作,该公司一直在从事特定的 Rails 项目。在开发过程的中间,我开始回过头来为现有代码以及当前正在生成的代码编写测试。

测试 rails 4 应用程序很容易,但是一旦我开始测试引擎,我就遇到了心理障碍。尽职调查后,我发现大多数人都采用这样的方法 (http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl),但我在所有这些回复中看到的共同点是人们从头开始构建这些应用程序,因此生成了一个虚拟应用程序自动为他们。我没有能够从头开始生成所有内容的好处,并且必须使用我得到的东西,所以呢

我想知道是否有一种方法可以追溯生成虚拟应用程序。我可以在控制台中输入一些简单的东西并为我生成吗?还是有一条更长、稍微不那么漂亮的路线?还是完全不同的策略会更好?

最佳答案

鉴于虚拟应用程序不应该与父 gem 绑定(bind),除了一些模糊的名称,可能会这样做:

cd some_path_where_your_engine_IS_NOT
rails plugin new YOUR_ENGINE_NAME --mountable --dummy-path=spec/dummy --skip-test-unit
mv YOUR_ENGINE_NAME/spec/dummy /real/path/to/YOUR_ENGINE_NAME/spec
rm -rf YOUR_ENGINE_NAME  # cleanup useless cruft

此外,您可能对 this answer 感兴趣生成具有完全相同的 rails 版本的应用程序。

关于ruby-on-rails - 如何在现有的 Rails 引擎中生成虚拟应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23495446/

相关文章:

ruby-on-rails - 如何为 Devise 的用户名添加 slug?

sql - "filtering"急切加载数据时出现问题

ruby-on-rails - 如何在 RSpec 中编写可重用的共享示例

ruby-on-rails - 如何在 Rails 中运行测试时保留数据

sql - 如何将带有条件的 sort_by 转换为 Rails 范围

ruby-on-rails - 在 rails 3 和 rails 4.1 之间共享 cookie

ruby-on-rails-4 - #<RSpec::ExampleGroups::UserName:> 的未定义方法 `build'

ruby-on-rails - Rspec 模型测试 - 模型中的 current_user

ruby-on-rails - Passenger 3.0 和调试器

ruby-on-rails - 如何在 ruby​​ on rails 中显示父表列名?