RubyDNS может сработать для вас. Этот пример почти дословно приведен на их странице GH: #!/usr/bin/env ruby require 'rubydns' INTERFACES = [ [:udp, 0.0.0.0, 5300], [:tcp, 0.0.0.0, 5300] ] Name =...
Ранее у RSpec был метод stub_chain, который позволял вам легко делать что-то подобное, однако он был удален, потому что он поощрял плохие практики, и теперь вам придется заглушать каждый ответ...
Как вы его определили... индекс отсеков требует параметра :slug . Согласно сообщению об ошибке, вы не передали пули на этот маршрут. Вы должны либо пройти :slug (например, get :index, :slug =>...
Ваше действие контроллера в корне нарушено. Он возвращает неправильный код ответа, когда запись не найдена (422, а не 401), и возвращает 200 независимо от того, обновлена запись или нет. Вы также...
Вы рассматриваете assigns как hash, но это метод, который принимает аргумент: assigns(:portal_news) . Дополнительная информация: http://guides.rubyonrails.org/тестирование.html
Вы пробовали иметь render_views в файле спецификации контроллера? Это меня устраивает. Еще одна вещь, которую я заметил, заключается в том, что вы получаете доступ к индексной странице только один...
Вы не указали источник своей спецификации, поэтому трудно сказать, в чем проблема, но в целом вы можете использовать опцию -e для запуска одного примера. Учитывая эту спецификацию: #...
Вот пример простого макета, который я сделал для теста контроллера в приложении rails: before(:each) do @page = mock_model(Page) @page.stub!(:path) @page.stub!(:find_by_id) @page_type =...
Я не уверен, что это может вам помочь, но у меня была такая же проблема при переходе на Rspec 3 Согласно https://relishapp.com/rspec/rspec-rails/docs/directory-structure мы должны включить эту опцию...
Метод get доступен только при тестировании контроллера. С новым rspec вам нужно явно указать, с чем вы тестируете: describe MyController, type: :controller do
С самыми последними версиями RSpec Rails доступны два файла для запуска спецификаций spec_helper.rb и rails_helper.rb Вполне вероятно, что вам нужно использовать require 'rails_helper' , чтобы...
Я попытался воспроизвести вашу ошибку, но потерпел неудачу. # spec_helper.rb require 'support/global_helpers' RSpec.configure do |config| config.include MyApp::GlobalHelpers end #...
Вот документ об использовании ожиданий it should delete a company do expect { click_link Delete Company }.to change{Company.count}.by(-1) end Обратите внимание на следующие изменения should...
Фильтрация по тегу использует hash внутри, что означает, что вы не можете указать несколько фильтров для одного и того же ключа. Например, если вы попытаетесь исключить :name => 'foo' и :name...
TL;DR Вы должны изучить различные инструменты и не уклоняться от hard cases, который может показаться не похожим на традиционный unit tests. Трудные случаи часто поддаются проверке. Тестирование -...
Следующий работает с драйвером selenium, возможно, и с другими драйверами, но не для rack_test. /index.html: <!DOCTYPE html> <html> <body> <h1>Header</h1> <iframe...
Во-первых, я немного запутался. Обычно в rails, когда вы создаете контроллер, контроллер имеет имя во множественном числе. Например , если ваша модель называется Profile , то у вас будет...
Вы должны иметь возможность использовать mock_model для этого: it should save the parent user object after it is saved do user = mock_model(User) user.should_receive(:save).and_return(true) profile...
Из вашей спецификации видно, что вы правильно издеваетесь и заглушаете, но вы никогда не вызываете check_status , поэтому заглушки и насмешки не используются. Вы можете изменить свой пример на...
Вы можете запустить код Perl из Ruby, так что да, это возможно, но: Все ваши тесты будут выглядеть как When I run some Perl code I expect this result Вы не сможете использовать большинство функций...
Как насчёт: before do User.stub(:find_by_id) User.stub(:find_all_by_parent) end it finds the user do User.should_receive(:find_by_id).with(37) xhr <HTTP VERB>, :some_ajax_action, :id => 37...
Я думаю, что вам не нужно создавать тестовые дубли для массива, они добавят ненужные сложности в код ваших тестов. Вы можете просто создать поддельный массив и использовать его позже: items =...