功能rspec为活动管理员

时间:2015-11-10 06:59:49

标签: rspec cucumber rspec-rails rspec2 cucumberjs

以下是我的活动管理资源文件和rspec功能。

当我运行rspec时...失败失败/错误:选择“全年”,来自:“来自财务月”  水豚:: ElementNotFound:  无法找到“全年”选项 谁能请帮忙???

****资源文件:(我有jst发布了我资源文件的表单操作,这与我面临的问题有关)****

ActiveAdmin.register ------------(code)
 --------------------------------(code)
form do |f|
f.inputs do

  f.input :from_model_id, as: :select, collection: P*****::FinanceModel.all, label: 'From Finance Model', input_html: {
      onchange: remote_get('p**_***_revenue_variance_mapping_from_model_id', 'p**_***_revenue_variance_mapping_from_finance_month_id')}

  f.input :lrp_from_year, as: :select, collection: ["LRP 1st YEAR","LRP 2nd YEAR"], input_html: {disabled: true }, label: 'Lrp From Year'
  f.input :from_finance_month_id, as: :select, collection: P*****::FinanceMonth.for_revenue_variance_mapping(f.object.from_model_id), label: 'From Finance Month'

end

f.actions
end
end

功能规范(此规范测试当单击新资源按钮并且表单填充相应的值时,相应的记录应显示在索引页面上)

 require 'spec_helper'---(code)

 ------------------------(code)
def i_click_on_new_revenue_variance_mapping
click_on "New Revenue Variance Mapping"
select "2012", from: "From year"
select "Budget", from: "From Finance Model"
select "Full-Year", from: "From Finance Month"

click_on "Create Revenue variance mapping"
 end

 def i_should_see_the_new_revenue_variance_mapping_in_the_index
  -----(code)
  )

 end
 end

FinanceMonth模型:(此模型中的'for_revenue_variance_mapping'方法在上面的资源文件的表单操作中调用)

module P######
 class FinanceMonth < ActiveRecord::Base
  include HasNamespacedName
  ------(code)
    def self.for_revenue_variance_mapping finance_model
  if !finance_model.nil?
  full_year_model_types = P****::FinanceModelType.where(P*****::FinanceModelType.arel_table[:finance_model_type_name].not_eq('CURRENT YEAR -    MONTHLY'))
  full_year_models = P*****::FinanceModel.order(:display_order).where(finance_model_type_id: full_year_model_types.map(&:finance_model_type_id))
  finance_model_ids = full_year_models.map(&:finance_model_id)
  if finance_model_ids.include? (finance_model.to_i)
models = [P*****::FinanceMonth.yearly_month]
  else if finance_model_ids.include? (finance_model)
         models = [P*****::FinanceMonth.yearly_month]
       else
         models = *****::FinanceMonth.twelve_months
       end
  end

1 个答案:

答案 0 :(得分:2)

Capybara::ElementNotFound: Unable to find option "Full-Year"

这意味着它所说的:找不到元素。具体而言,Capybara希望找到价值&#34; Full-Year&#34;在一个名为&#34;来自财务月&#34;的选择元素中。但为什么?如果没有看到测试实际在浏览器中运行,那么很难知道原因。

您需要提供有关测试产生的输出的更多详细信息。也许您可以尝试Debugging Capybara中的建议来查看页面上显示的元素。