Как заставить тест xUnit работать с простым консольным приложениемC#

Место общения программистов C#
Ответить
Anonymous
 Как заставить тест xUnit работать с простым консольным приложением

Сообщение Anonymous »

Я ссылался на сообщение здесь о переполнении стека. Есть ли способ модульного тестирования операторов верхнего уровня в C#? Однако это не помогло. Я пытаюсь научиться использовать тестирование xUnit в консольном приложении C#.
Основное приложение очень простое:

Код: Выделить всё

internal static class Program
{
private static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}

internal static int Add2(int a, int b) => a + b;
}
Проект xUnit также прост:

Код: Выделить всё

using Xunit;
using LearnXUnit;

namespace LearnXUnit.Test
{
public class UnitTest1
{
[Fact]
public void Test2()
{
// Arrange
int a = 2;
int b = 3;

// Act
int bozo = LearnXUnit.Program.Add2(a, b);

// Assert
Assert.Equal(5, bozo);
}
}
}
Однако VS 2022 не поддерживает LearnXUnit.Program.Add2(a, b). Он жалуется, что Program не существует в LearnXUnit. Я спросил об этом GitHub Copilot. Но он настаивает на том, чтобы я поместил это в файл проекта LearnXUnit: Однако всякий раз, когда я помещаю этот XML в файл проекта, VS 2022 всегда будет жаловаться, что я пытаюсь ввести циклическую ссылку между двумя проектами. Однако GH Copilot всегда возвращается к этому решению, и я задавал его трижды.
Итак, как мне заставить тестовый проект xUnit ссылаться на метод Add2 в основном проекте?

Подробнее здесь: https://stackoverflow.com/questions/798 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»