snv2973 Ответов: 2

Как написать xunit для основного метода excuting на странице program.cs


Я написал один тестовый случай для выполнения основного метода на странице Program.cs в .net core.
Этот метод поражает, но не завершает.Все еще прокладывая маршрут без пропуска или провала.вот и утверждаю тоже не попал

Что я уже пробовал:

public class ProgramTest
    {
        [Fact]
        public async  void MainTest()
        {

            try
            {
                
                    Program.Main(new string[0]);
            }
            catch(Exception ex)
            {

            }            

            Assert.Null(null);
        }
    }

F-ES Sitecore

Если код висит, то это, вероятно, потому, что он ждет завершения Main. В любом случае, это не модульный тест, что вы тестируете?

2 Ответов

Рейтинг:
1

Bohdan Stupak

Тестирование main метод - это плохая идея.
Во-первых, нет прямых выходов для проверки, потому что main возвращается void (или Task)
Во-вторых, если ваша цель-проверить, какой побочный эффект производит метод, вы не можете издеваться над своими зависимостями. Что, в свою очередь, делает ваш тест более интеграционным тестом.
Извлеките логику, которую вы хотите протестировать, в класс и протестируйте ее.


Рейтинг:
0

phil.o

Вы не можете поймать ни одного исключения в async void во всяком случае, метод.
Избегайте асинхронных методов void[^]