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

Aus*_*us1 23 rspec ruby-on-rails legacy-code rails-engines ruby-on-rails-4

我最近为一家公司工作,该公司一直致力于特定的铁路项目.在开发过程的中间,我开始回去为现有代码以及当前正在生成的代码编写测试.测试rails 4 app非常简单,但是一旦我开始测试引擎,我就会遇到心理障碍.在做了尽职调查之后,我发现大多数人采取这样的方法(http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl),但我看到的共同点在所有这些响应中,人们正在从头开始构建这些应用程序,因此自动为它们生成了一个虚拟应用程序.我没有了能够产生一切从零开始的利益,并与他们给我什么样的工作,所以我想知道的是,如果有一种方法来追溯产生只是虚拟应用程序.有什么简单的东西我可以在控制台中输入并为我生成它吗?还是有更长,稍微不那么漂亮的路线?或者一个不同的策略会更好吗?

Llo*_*eki 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
Run Code Online (Sandbox Code Playgroud)

此外,您可能对此答案感兴趣,以使用完全相同的rails版本生成应用程序.