Почему этот простой модульный тест Rails не проходит, если фактическое значение совпадает с ожидаемым? - PullRequest
2 голосов
/ 12 января 2009

У меня очень простой юнит-тест. Я не уверен, почему это терпит неудачу, когда ожидаемое совпадает с фактическим!

Вот метод, который я тестирую:

def calibration_constant
  big_decimal = self.coefficient * (10**self.exponent)
  return big_decimal.to_f
end

Обратите внимание, что коэффициент равен "6,1", а показатель степени равен "1"

Вот соответствующая тестовая строка:

assert_equal(61.0.to_f, calibrations[0].calibration_constant)

Вот вывод:

test_calibration_constants (PyranometerCalibrationTest): <61,0> ожидалось, но было <61,0>.

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

Я использую Rails 2.1 (Ruby 1.8) в Windows с SQL Server 2005.

Заранее спасибо за помощь.

1 Ответ

12 голосов
/ 12 января 2009

Вы сравниваете два числа. Попробуйте использовать assert_in_delta с действительно низким значением дельты (0,000001), чтобы увидеть, является ли ваша проблема просто ошибкой точности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...