NUnit 测试无法识别我创建的 class - "The type or namespace name could not be found"

NUnit test does not recognize a class that I created - "The type or namespace name could not be found"

我正在设置基本的 NUnit 测试项目来测试 STACK 对象。我创建了 MyStack class 和 TestClassTestClass 找不到对我创建的 MyStack class 的引用。

The type or namespace name 'MyStack' could not be found (are you missing a using directive or an assembly reference?

我正在使用 NUnit 和 NUnit3TestAdapter。我已将包含 MyStack 的项目添加到测试项目的引用中。

测试类

using NUnit.Framework;

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

我的堆栈

namespace TDDStack
{
    class MyStack
    {
    }
}

我看到两个可能的问题。首先是 MyStack class 是 private。如果 class 关键字之前没有其他修饰符,C# 默认 non-nested 类型为 private,嵌套类型为 internal.

尝试将 public 关键字添加到您的 MyStack class 定义中:

public class MyStack

其次,MyStackTDDStack 命名空间中,但您试图在 NUnit.TDDStackTests 命名空间的 class 中创建它的实例。要解决此问题,您可以在单元测试中为命名空间添加 using 语句:

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

namespace NUnit.TDDStackTests
{
    [TestFixture]
    public class TestClass

    // etc ...

或者您可以在 MyStack 的每个用法前​​加上包含它的命名空间:

var stack = new TDDStack.MyStack();

如果class在单独的项目中,您还需要在要使用它的项目(单元测试项目)中添加对包含MyStack的项目的引用.