Модульные тесты Rails для функций, которые используют вложения - PullRequest
0 голосов
/ 10 июля 2009

Я создаю программу, которая будет проверять изображения, загруженные пользователями, вошедшими в систему. У меня есть код RMagick, написанный для проверки (в основном выясняю, есть ли в изображении черный пиксель), но не знаю, как написать модульные тесты для этой модели.

В настоящее время я использую скрепку для прикрепления загруженного файла к модели, которая, как я понимаю, использует ряд полей в базе данных для отслеживания файлов. Как мне настроить свои приборы так, чтобы я мог проводить модульное тестирование на одних и тех же данных каждый раз?

Моя модель сейчас:

class Map < ActiveRecord::Base
  has_attached_file :image, :styles => { :small => "150x150>" }
  validates_attachment_presence :image
  validates_uniqueness_of :name, :message => "must be unique"

  def pixel_is_black(x, y)
    <code to return true if position (x,y) in image is black>
  end
end

1 Ответ

0 голосов
/ 11 июля 2009

Лучше всего прочитать об использовании fixture_file_upload в ваших функциональных тестах

Для модульных тестов у меня обычно есть метод разрыва, который удаляет файлы после того, как они были изменены (хотя его можно использовать для копирования оригиналов, как вам угодно - см. Библиотеку fileutils)

def setup
  FileUtils.cp 'original.jpg', '/path/to/where/file/exists/in/fixture.jpg'
end

def teardown
  Fileutils.rm '/path/to/where/file/exists/in/fixture.jpg', :force => true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...