Как протестировать или отладить часть кода в Visual Studio

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

В LabVIEW, если я хочу протестировать функцию (они называют ее ВП), я могу просто запустить этот ВП, задав входные параметры и нажав кнопку "воспроизведение". Таким образом, очень легко тестировать низкоуровневые функции без необходимости запуска всего приложения.

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

Как правильно протестировать эти низкоуровневые методы на этапе разработки с помощью Visual Studio?

Мое текущее решение (да, я знаю, что это очень плохое решение) состоит в том, чтобы создать еще один проект в решении и каким-то образом связать или скопировать код, который я хочу протестировать, и запустить там отладчик.

Буду очень признателен за подсказку новичку :)

Заранее спасибо!

Посмотрите на то, что называется "модульное тестирование".

madreflection 05.07.2023 23:16

Модульное тестирование - это обычный способ - на самом деле его не так уж сложно настроить.

topsail 05.07.2023 23:19

Щелкните правой кнопкой мыши класс или метод и выберите «Создать модульный тест (ы)». Примите параметры по умолчанию. Теперь у вас будет отдельный проект для ваших тестов и создано несколько фиктивных тестов. Вы можете отлаживать тесты (сначала поставить в них точку останова) и использовать тесты для пошагового выполнения кода метод за методом.

Flydog57 05.07.2023 23:43

Пожалуйста, не стесняйтесь сообщить, если у вас есть какие-либо вопросы.

wenbingeng-MSFT 07.07.2023 03:20

Большое спасибо, что поделились этим. Это было именно то, что я искал. Я не знал, что использование UnitTests было таким простым и в то же время таким универсальным.

Jensolo 07.07.2023 13:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Модульное тестирование — очень удобный и практичный способ тестирования и отладки кода в нем. Ниже приведен простой пример с использованием официального MSTest от Microsoft:

У меня есть две функции следующим образом:

   public static double Add(double d1, double d2)

    {
        return d1 + d2;

    }



    public static bool IamTrue()
    {
        return true;
    }

В этот момент, если я щелкну правой кнопкой мыши функцию и выберу «Создать модульный тест», появится меню «Создать модульный тест» и нажмите «ОК», чтобы сгенерировать соответствующий модульный тест.

Вот пример использования для создания модульных тестов для двух функций:

[TestClass()]
public class CalculateTests
{
    [TestMethod()]
    public void AddTest()
    {
        Assert.Fail();
    }

    [TestMethod()]
    public void IamTrueTest()
    {
        
         Assert.Fail();
        
    }
}

Но нам нужно изменить исходный модульный тест в соответствии с характеристиками функции, как показано ниже после изменения:

    [TestMethod()]
    public void AddTest()
    {
        Assert.AreEqual(Calculate.Add(1, 2), 3);
    }

    [TestMethod()]
    public void IamTrueTest()
    {
        if (Calculate.IamTrue() == false)
        {
            Assert.Fail();
        }
    }

Щелкните правой кнопкой мыши и выберите «Выполнить тесты», чтобы проверить, работает ли метод должным образом.

Следующее указывает на успешный запуск:

Вы также можете отладить функцию в модульном тесте. Установив точку останова для отладки, щелкните правой кнопкой мыши модульный тест и выберите Отладка тестов, чтобы отладить функцию.

Примечание. Перед модульным тестированием убедитесь, что ваша программа может нормально работать.

Другие вопросы по теме