[n00b alert] Возможно, я все делаю неправильно ... RSpec выводит эту ошибку:
1)... #skipped irrelevant info
Failure/Error: graph.read_db('example1')
Not connected to any DB. #error msg
#./prim.rb:135:in 'read_db'
#./prim_spec.rb:171:in 'block (2 levels) in <top (required)>'
Я установил базу данных MySQL на той же машине. Программа предоставляет алгоритм для вычисления минимального остовного дерева графа. Имеет методы для файлового ввода-вывода, ввода-вывода базы данных с использованием ActiveRecord и т. Д. Все WORKS WELL , кроме тестов RSpec
Код (не относящиеся к делу части):
prim_spec.rb
describe PGraph, "online" do
before (:all) do
ActiveRecord::Base.establish_connection(
:adapter => "mysql2",
:host => "localhost",
:username => "root",
:password => "xxxxx",
:database => "rubytasks" )
#the exact same statement works perfectly when running the program itself, but fails in RSpec
end
before (:each) do
@graph = PGraph.new
end
it "should correctly retrieve data from database" do
@graph.read_db('example1') #line 171
#business part goes here
end
end
prim.rb
class PGraph
def read_db(graphID)
#the error which is raised (line 135):
raise "Not connected to any DB." unless ActiveRecord::Base.connected?
#reading goes here
end
end
Подключение и манипуляция PGraph выполняется в ui.rb.
Итак, каков правильный способ доступа к реальной БД (я ленив) для тестирования (или проблема в другом месте?)? Желательно что-то простое, так как это всего лишь школьное задание. И не возиться с Rails или другими драгоценными камнями.
PS: я использую самые последние версии всех гемов и сервера. На Windows 7 x86. Рубин 1.9.2. Спасибо.