Тест NUnit не распознает созданный мной класс: «Не удалось найти имя типа или пространства имен» - PullRequest
2 голосов
/ 15 мая 2019

Я настраиваю базовый тестовый проект NUnit для тестирования объекта STACK.Я создал класс MyStack и класс TestClass.TestClass не может найти ссылку на класс MyStack, который я создал.

Не удалось найти имя типа или пространства имен MyStack (отсутствует директива using или ссылка на сборку?

Я использую NUnit & NUnit3TestAdapter.Я добавил проект, содержащий MyStack в список ссылок тестового проекта.

TestClass

using NUnit.Framework;

namespace NUnit.TDDStackTests
{
    [TestFixture]
    public class TestClass
    {
        [Test]
        public void TestMethod()
        {
            MyStack stack = new MyStack();
        }
    }
}

MyStack

namespace TDDStack
{
    class MyStack
    {
    }
}

1 Ответ

3 голосов
/ 15 мая 2019

Я вижу две возможные проблемы.Во-первых, класс MyStack равен private.В C # по умолчанию для не вложенных типов установлено значение private, если перед ключевым словом class нет другого модификатора, а для вложенных типов - internal.

Попробуйте добавить ключевое слово public в свой класс MyStack.определение:

public class MyStack

Во-вторых, MyStack находится в пространстве имен TDDStack, но вы пытаетесь создать его экземпляр в классе в пространстве имен NUnit.TDDStackTests.Чтобы это исправить, вы можете либо добавить оператор using для пространства имен в модульном тесте:

using NUnit.Framework;
using TDDStack; // Add this

namespace NUnit.TDDStackTests
{
    [TestFixture]
    public class TestClass

    // etc ...

Или вы можете просто добавить каждый префикс MyStack к пространству имен, которое его содержит:

var stack = new TDDStack.MyStack();

Если классы находятся в отдельных проектах, вам также необходимо добавить ссылку на проект, содержащий MyStack в проекте, в котором вы хотите его использовать (проект модульного тестирования).

...