我正在设置基本的NUnit测试项目以测试STACK对象。我创建了MyStack
类和TestClass
。 TestClass
找不到对我创建的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
其次,
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
的项目的引用。