以下是我的活动管理资源文件和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
答案 0 :(得分:2)
Capybara::ElementNotFound: Unable to find option "Full-Year"
这意味着它所说的:找不到元素。具体而言,Capybara希望找到价值&#34; Full-Year&#34;在一个名为&#34;来自财务月&#34;的选择元素中。但为什么?如果没有看到测试实际在浏览器中运行,那么很难知道原因。
您需要提供有关测试产生的输出的更多详细信息。也许您可以尝试Debugging Capybara中的建议来查看页面上显示的元素。