Как с помощью модульных тестов Rubberduck узнать, какое из нескольких утверждений не удалось?

Я использую Rubberduck для модульного тестирования своих реализаций VBA. При использовании нескольких утверждений одного типа (например, Assert.IsTrue) в одном TestMethod результат теста не сообщает мне, какой из них не прошел, насколько я могу судить.

Есть ли способ узнать, какое утверждение Assert не удалось, или это входит в будущую дорожную карту Rubberduck? Конечно, я мог бы добавить свою информацию, например используя Debug.Print перед каждым утверждением, но это вызовет много лишнего кода.

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


person Jörg Brenninkmeyer    schedule 06.04.2017    source источник


Ответы (1)


Отказ от ответственности: я активно участвую в разработке Rubberduck.

Интерфейс IAssert, который реализует как Rubberduck.AssertClass, так и Rubberduck.PermissiveAssertClass, включает необязательный параметр message для каждого отдельного элемента:

Обозреватель объектов, показывающий элементы 'AssertClass'

Просто включите разные и описательные сообщения для каждого утверждения:

Assert.AreEqual expected, actual, "oops, didn't expect this"
Assert.IsTrue result, "truth is an illusion"

Окно инструментов Обозреватель тестов отобразит настраиваемое сообщение в столбце Сообщение, только если утверждение не выполняется:

Обозреватель тестов удаленных рабочих столов

person Mathieu Guindon    schedule 06.04.2017
comment
Очень полезно - я предлагаю добавить это в Wiki on Rubberduck Unit Testing. - person Jörg Brenninkmeyer; 06.04.2017
comment
@ JörgBrenninkmeyer О боже, эти снимки из 1.4! Вики определенно нуждается в небольшом обновлении ... особенно с учетом изменений, которые будут внесены в структуру тестирования в следующем выпуске (я сказал насмешливо?) ... - person Mathieu Guindon; 06.04.2017
comment
@ Mat'sMug Теперь, когда есть тег «Rubberduck», хотите ли вы побудить людей указывать номер своей текущей версии в своих вопросах «Rubberduck»? Этот вопрос и ваш ответ не зависят от версии, но теперь вы сделали комментарии, не зависящие от версии, и другие вопросы могут не зависеть от версии. - person puzzlepiece87; 07.04.2017
comment
@ Puzzlepiece87 тег существует уже некоторое время (см. мои вопросы meta.SO) - действительно, было бы неплохо, если бы спрашивающие включили сборку # ... но я думаю, не совсем обязательно. Общие вопросы RD, относящиеся к одному конкретному выпуску, вряд ли будут заданы или даже исследованы пользователями более поздних выпусков. Ответы OTOH, хотя бы должны намекать на текущую последнюю версию. - person Mathieu Guindon; 07.04.2017