Я ссылался на сообщение здесь о переполнении стека. Есть ли способ модульного тестирования операторов верхнего уровня в 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 всегда возвращается к этому решению, и я задавал его 3 раза.
Итак, как мне заставить тестовый проект xUnit ссылаться на метод Add2 в основном проекте?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... sole-appli