Статьи / примеры с тестовым блоком и активной записью - PullRequest
1 голос
/ 05 марта 2011

Я собираюсь написать несколько модульных тестов, которые позволят мне создавать / тестировать несокращенные функции CRUD, как я могу в Rails, но я хочу использовать минимальное количество гемов (тестовый модуль и активная запись).

Кто-нибудь знает какие-либо ресурсы, которые могут помочь?

Спасибо

1 Ответ

1 голос
/ 06 марта 2011

Не знаю ни одного ресурса конкретно об этом. Чтобы активная запись работала в простом тесте, вам просто нужно настроить детали соединения и классы вашей модели, предполагая, что у вас есть существующая база данных для работы, которая соответствует соглашениям об активных записях. Не знаю, на какой стадии вы находитесь, но если вам нужен простой пример:

require 'rubygems'
require 'active_record'
require 'test/unit'

ActiveRecord::Base.establish_connection(
  :adapter  => 'sqlite3',
  :database => 'db/my.db'
)

# Assuming a table like:
# CREATE TABLE people (id INTEGER PRIMARY KEY, name VARCHAR(100) NOT NULL, age INTEGER NOT NULL);
class Person < ActiveRecord::Base
end

class TestActiveRecord < Test::Unit::TestCase
  def setup
    @bob = Person.create(:name => 'Bob', :age => 95)
  end

  def teardown
    @bob.destroy
  end

  def test_find_bob
    bob = Person.find_by_name('Bob')
    assert_not_nil(bob)
    assert_equal(95, bob.age)
  end
end

Здесь нет других драгоценных камней, кроме тех, от которых зависит активная запись.

Вам нужно будет определить, какие параметры конфигурации вам нужны, в зависимости от типа используемого адаптера базы данных. Если ваша схема базы данных не соответствует соглашениям об активных записях, вам также придется указать некоторые отображения в ваших классах моделей.

...