我使用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提交表單?