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


  找不到类型或名称空间名称“ MyStack”(您是否缺少using指令或程序集引用?


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

测试类

using NUnit.Framework;

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


MyStack

namespace TDDStack
{
    class MyStack
    {
    }
}

最佳答案

我看到两个可能的问题。第一个是MyStack类是private。如果private关键字之前没有其他修饰符,则C#将非嵌套类型默认为class,将嵌套类型默认为internal

尝试将public关键字添加到MyStack类定义中:

public class MyStack


其次,MyStackTDDStack命名空间中,但是您试图在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的项目的引用。

10-08 06:30