Использовать конфигурацию решения для условного модульного тестирования - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу провести модульное тестирование некоторых функций, связанных с пользовательским интерфейсом (Excel здесь). Я мог бы смоделировать весь пользовательский интерфейс, но это намного больше, чем просто визуальный осмотр результата, полученного несколькими тестируемыми функциями, которые я sh проверял.

Теперь эти тесты включают запуск Excel, а затем Появляется окно сообщения и спрашивает тестировщика, следует ли считать тест успешным или неудачным. Я хорошо знаю, что это плохая практика (каждый модульный тест должен быть детерминированным c, тогда как ответ от тестера явно нет; модульные тесты должны быть быстрыми, в то время как запуск Excel и ожидание ответа тестера - нет; et c). Решение о тестировании, как я только что описал, - это прагматическое c, поскольку оно означает обмен очень быстрого решения на то, что в противном случае было бы ужасно большой головной болью.

Очевидно, я не хочу запускать эти 2-3 теста каждый раз, когда я запускаю большинство моих модульных тестов (300 нет). Поэтому я надеялся, что смогу использовать директивы условной компиляции, чтобы запускать или не запускать эти дополнительные тесты; что-то вроде следующего:

<TestMethod()>
Public Sub MyFunction_ShouldDoSomething_WhenSomethingElse()

    #If DEBUG Then
    Assert.Inconclusive("UX tests are skipped when the active configuration is DEBUG.")
    #End If

    ... some operations involving opening Excel ...

    If vbNo = MsgBox("Does the data display as expected?", vbYesNo) Then Assert.Fail("Tester invalidated UX test.")

End Sub

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

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