我正在关注Ruby on Rails guide for creating Plugins,我甚至无法生成教程所需的第一个测试。取自教程:
对我而言,这意味着使用这样的生成器创建测试?:
yaffle $ rails g test core_ext
但不起作用,任何人都可以向我解释,
我应该如何为Ruby on Rails插件生成测试?
我知道插件附带 / test Dir 本身下的虚拟应用(实际上可以从中发出rails命令),但是< / strong>注意Tutorial显示测试文件是在project_root(yaffle)/ test下创建的,而不是在project_root(yaffle)/ test / dummy / test /
下我真的对此感到困惑,我如何实际生成本教程所需的测试?
提前感谢您的解释。
答案 0 :(得分:1)
据我所知,没有用于测试的发生器。您从根运行rake test
并手动编写测试。
教程告诉您在哪里制作测试文件,要命名的内容以及要放入的代码:
# yaffle/test/core_ext_test.rb
# This is the location and name of the test file^
# Everything below this line is what you put in core_ext_test.rb
require 'test_helper'
class CoreExtTest < Test::Unit::TestCase
def test_to_squawk_prepends_the_word_squawk
assert_equal "squawk! Hello World", "Hello World".to_squawk
end
end
答案 1 :(得分:0)
“我应该如何为Ruby on Rails插件生成测试?”
运行插件生成器时,请参阅http://guides.rubyonrails.org/v2.3.11/plugins.html,还会创建关联的测试文件。但是,如果没有,下面是您可以手动创建它们的方法。
在test
目录的根目录中,您至少需要两个文件。
A test_helper.rb
。这是执行测试的引导程序。默认情况下,这应该已经存在。我的设置允许测试从rails应用程序执行(虚拟/),如果你有任何。请注意,我也在为虚拟轨道应用程序加载灯具。由于Rails4错误,默认Yaffle示例有一处更改(请参阅注释内联)。
# Configure Rails Environment
ENV["RAILS_ENV"] = "test"
require File.expand_path("../dummy/config/environment.rb", __FILE__)
require "rails/test_help"
Rails.backtrace_cleaner.remove_silencers!
# Load support files
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
Dir.glob("#{File.dirname(__FILE__)}/dummy/app/models/*.rb").sort.each { |file| require_dependency file }
# see https://github.com/rails/rails/issues/4971 for why we cant test this method
#if ActiveSupport::TestCase.method_defined?(:fixture_path=)
ActiveSupport::TestCase.fixture_path = File.expand_path("../dummy/test/fixtures", __FILE__)
#end
# Load fixtures from the engine
class ActiveSupport::TestCase
set_fixture_class :users => "User"
fixtures :all
end
您的yaffle_test.rb
最初可能是一个非常简单的真相测试
require 'test_helper'
class YaffleTest < ActiveSupport::TestCase
test "Yaffle is a module" do
assert_kind_of Module, Yaffle
end
end