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

时间:2014-05-06 13:00:14

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

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

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

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

1 个答案:

答案 0 :(得分:35)

鉴于虚拟应用程序不应该绑定到父级gem,除了一些模糊的名称,可以这样做:

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版本生成应用。