Тестирование пользовательских моделей рельсовых методов - PullRequest
3 голосов
/ 19 марта 2010

У меня есть несколько моделей, в которых слова хранятся в виде строки, в которой каждое слово разделяется пробелом. Я определил методы модели для удаления и добавления слов в строку, а размер или количество слов обновляется каждый раз соответственно. Где-то есть ошибка, потому что размер иногда оказывается отрицательным. Мне интересно, как лучше всего проверить такую ​​ситуацию на рельсах. В идеале я хотел бы написать тест, который позволит мне добавить несколько слов и удалить их, проверяя каждый раз правильное значение размера. Спасибо.

1 Ответ

5 голосов
/ 19 марта 2010

Полагаю, ваша модель выглядит примерно так? Я упустил некоторый код для простоты, поскольку ваш вопрос не о том, как реализовать фрагмент управления словами, а о том, как его протестировать.

class A
  def add_word(word)
    # Add the word to the string here
  end

  def delete_word(word)
    # Find the word in the string and delete it
  end

  def count_words
    # Probably split on " " and then call length on the resulting array
  end
end

Теперь вы можете просто написать простой модульный тест.

require File.dirname(__FILE__) + '/../../../test_helper'

class EpisodeTest < ActiveSupport::TestCase 
  def test_word_count
    a = new A()

    assert_equal(0, a.count_words)

    a.add_word("foo")
    assert_equal(1, a.count_words)
    assert_equal("foo", words)

    a.add_word("bar")
    assert_equal(2, a.count_words)
    assert_equal("foo bar", words)

    a.delete_word("foo")
    assert_equal(1, a.count_words)
    assert_equal("bar", words)
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...