2015-12-09 2 views
1

Мне очень нравится Minitest и это простота, но я не понимаю, почему я должен использовать assert_equal вместо assert с оператором ==.Почему я должен использовать assert_equal вместо простого утверждения с равным оператором в minitest?

Если я смотрю на Implementation, метод assert_equal делает то же самое, что и я сказал с равным оператором.

Зачем мне этот шаг между ними, а не просто использовать его напрямую?

Я также считаю, что это не будет более читаемым только из-за equal с тех пор, как == очень себя объясняет.

ответ

1

Обычно вы предпочитаете assert_equal, когда предпочитаете сообщения об отказах.

Когда вы пишете assert a == b, и по какой-либо причине тест не прошел, сообщение просто скажет что-то по линиям Assertion failed. С другой стороны, если вы используете assert_equal a, b, сообщение об ошибке покажет сообщение, такое как Expected a to be equal to b, которое дает вам более подробную информацию о том, почему тест не удался.

+1

Это, вероятно, причина. Он удаляет накладные расходы при написании пользовательского сообщения, но все еще описывает, почему утверждение не выполнено. Я не смотрел на это с этой точки зрения. :) – Tobias

2

Я думаю, что это просто вопрос выбора, и для меня assert_equal выглядит более читаемым, чем при использовании ==

assert_equal expect, actual 
+0

Я думаю, что это не так, потому что это гораздо более самоописание, если вы смотрите на 'a == b', чем на' assert_equal a, b'. Еще больше, если раньше вы не использовали Minitest. Но я думаю, что @eugen прав с его предположением, что из-за пользовательского сообщения. – Tobias

+0

@Tobias Как я уже сказал, это просто вопрос выбора, и, конечно, 'assert_equal' вызывает другой msg, если утверждение терпит неудачу, это еще одно преимущество. –

Смежные вопросы