Почему я получаю «Test is not a class» в этом сценарии Ruby? - PullRequest
1 голос
/ 10 августа 2010

У меня проблема с этим классом

require "test/unit"
require "selenium/client"

class Test < Test::Unit::TestCase

  def setup
    @verification_errors = []
    @selenium = Selenium::Client::Driver.new \
      :host => "localhost",
      :port => 4444,
      :browser => "*chrome",
      :url => "http://change-this-to-the-site-you-are-testing/",
      :timeout_in_second => 60

    @selenium.start_new_browser_session
  end

  def teardown
    @selenium.close_current_browser_session
    assert_equal [], @verification_errors
  end

  def test_test
    @selenium.open "/apj/gestionnaire/flux.ex"
    @selenium.wait_for_pop_up "_self", "30000"
  end
end

мне говорят, что это не класс:

/test.rb:4: Test is not a class (TypeError)
 from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
 from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
 from C:/Documents and Settings/Micro/My Documents/Aptana RadRails Workspace/.metadata/.plugins/org.rubypeople.rdt.testunit/ruby/RemoteTestRunner.rb:301

У кого-нибудь есть идеи? С уважением Bussiere

Ответы [ 2 ]

4 голосов
/ 10 августа 2010

Использование Test в качестве имени вашего класса - плохая идея. Это существующая константа (ссылающаяся на модуль), как только вам потребуется test/unit

require "test/unit"
Test.class # => Module

Используйте другое имя для вашего теста.

0 голосов
/ 03 февраля 2015

Использование Test в качестве имени вашего класса - плохая идея.

Неверно! Сегодня была выпущена новая версия гема rspec-rails, исправляющая эту проблему в некоторых случаях.

Вы можете взглянуть на файл журнала изменений :

Исправлена ​​ошибка «Test is not a class (TypeError)» при использовании пользовательского класса Test в Rails 4.1 и 4.2. (Аарон Кромер, № 1295)

...