无法访问错误:NUnit与控制台应用程序

问题描述:

我已经在C#/ VS2008中编写了一个控制台应用程序。因为我有多个类声明没有指定任何可访问性修饰符。像无法访问错误:NUnit与控制台应用程序

Namespace MyNamespace 
{ 
    Class MyClass 
    { 
    .. 

    } 
} 

现在我添加了一个新的控制台应用程序用于测试目的。我添加了对NUnit框架DLL的引用。然后提到我的主要项目DLL。但是当我尝试创建MyClass的一个对象到我的TestFixture类中时,则出现“MyNamespace.MyClass由于其保护级别而无法访问”的错误“

是否需要将我的类创建为公共类?但是,如果我的项目无法负担得起呢?

类必须public如果你希望它是从其他组件访问:

namespace MyNamespace 
{ 
    public class MyClass 
    { 

    } 
} 

如果项目不能不起你可以看看[InternalsVisibleTo]属性。

+0

是否意味着 - 如果我无法将其更改为公共,那么我无法使用NUnit测试我的应用程序? – 2010-11-18 10:46:46

+1

不仅使用NUnit,而且使用任何测试框架。你可以在你的单元测试中总是使用反射,但这就像在腿上射击自己。这当然并不意味着你不能单元测试你的应用程序。如果这个类不公开,这意味着作者不打算在当前程序集之外访问它。你总是可以测试内部依赖这个类的公共方法,你也会隐式地测试它。 – 2010-11-18 10:48:16

+0

然后,我可以在主项目中拥有我的测试课程吗?那么它会成为运行测试的实践吗? – 2010-11-18 10:50:56