我使用Rails 3.2.13与postgres,rspec 2.13,capybara 2.0.3和database_cleaner 0.9.1。我也使用AngularJS。我有一个测试提交表单(创建标准rails模型实例)的js:true规范。唯一可能不是标准Rails的是我使用AngularJS通过Ajax提交此表单。每当规格运行时,我得到以下错误:在钩子NoMethodError发生错误:undefined方法`each'为零:NilClass(AngularJS)
An error occurred in an after hook
NoMethodError: undefined method `each' for nil:NilClass
occurred at /Users/morgler/.rvm/gems/[email protected]/gems/activerecord- 3.2.13/lib/active_record/associations/collection_association.rb:310:in `replace'
该规范随后失败。对我来说,似乎这个错误发生在database_cleaner运行后的挂钩之后。我得到这个在我的spec_helper.rb:
$scope.saveOrderProcess = (event) ->
if $scope.orderProcess.id
$scope.orderProcess.$update()
else
OrderProcess.create($scope.orderProcess)
任何想法,我是缺少在这里:
config.before(:each) do
if Capybara.current_driver == :rack_test
DatabaseCleaner.strategy = :transaction
else
DatabaseCleaner.strategy = :truncation
end
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
的代码在单击窗体的提交按钮是通过AngularJS提交表单?