我有一个支持规范功能,可以处理对操作,格式,关联的测试路由。此代码已移至我们的后端gem。使主应用程序中的路由测试更加清晰。我正在尝试为模块添加更强大的单元测试,因为有两个项目正在使用它。
我想在gem中编写一个RSpec测试来测试gem提供的RSpec代码。
在我们的gem(<gem>/lib/<gem>/spec/support/file.rb
)中,它会像
def test_route(....)
...
if routable
specify 'message' do
expect (method => url).to route_to(controller, route_hash)
end
else
specify 'other message' do
expect (method => url).not_to be_routable
end
end
end
在gem rspec(<gem>/spec/lib/spec/support/test_route_spec.rb
)中,
我试图删除:define_example_method
函数,但我没有到达任何地方:
context 'context message' do
before do
allow(RSpec::Core::ExampleGroup).to receive(:define_example_group).with(name)
end
specify do
# /b/1/a.json should be routable
test_route(:a, :b, :index, :json, true)
# expect something....
end
end
我最终得到以下结论:
`specify` is not available from within an example (e.g. an `it` block)...
来自method_missing方法
任何指导或指示都将不胜感激。