2015-11-10 2 views
-3

Ниже представлен мой активный файл ресурсов администратора и функция rspec.Функция rspec для активного администратора

Когда я бегу RSpec ... он терпит неудачу Failure/Ошибка: выберите "Full-Year" от: "От финансов месяца" Capybara :: ElementNotFound: Невозможно найти опцию "весь год" Может ли кто-нибудь помочь?

**** Файл ресурсов: (я JST отправил форму действия моего файла ресурса, который relavent к проблеме, с которой сталкиваются меня) ****

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 

Feature спецификации (Эта спецификация тесты, когда новая кнопка ресурс щелкнул и форма заполнена соответствующими значениями, соответствующая запись должна отображаться на главной странице)

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_vari ance_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

Пожалуйста, отформатируйте код так, чтобы он был читабельным. Вы можете просмотреть советы по заданному вопросу: http://stackoverflow.com/help/how-to-ask – zetetic

+0

Формирование сделано. – Ananyaa

ответ

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

Это означает, что он говорит: элемент не был найден. В частности, Capybara рассчитывает найти опцию со значением «Full-Year» в элементе select, который называется «From Finance Month». Но почему? Не видя, что тест действительно запущен в браузере, очень сложно понять причину.

Вам нужно будет предоставить более подробную информацию о выходе, полученном в результате теста. Возможно, вы можете попробовать предложения от Debugging Capybara, чтобы узнать, какие элементы присутствуют на странице.

+0

, если вы видите файл ресурса -> действие формы (f.input: from_finance_month_id, as :: select, collection: PamClient :: FinanceMonth.for_revenue_variance_mapping (f.obj ect.from_model_id), метка: «Из месяца финансирования», метод 'fir_revenue_variance_mapping' используется для модели «FinanceMonth». Также есть некоторые вызовы ajax, выполненные в форме для некоторых элементов выбора файла ресурса выше. Я думаю, что мне нужно использовать заглушки или mocks, и я не знаю, как использовать чтобы получить значения @zetetic – Ananyaa

Смежные вопросы