无法访问错误:NUnit与控制台应用程序
问题描述:
我已经在C#/ VS2008中编写了一个控制台应用程序。因为我有多个类声明没有指定任何可访问性修饰符。像无法访问错误:NUnit与控制台应用程序
Namespace MyNamespace
{
Class MyClass
{
..
}
}
现在我添加了一个新的控制台应用程序用于测试目的。我添加了对NUnit框架DLL的引用。然后提到我的主要项目DLL。但是当我尝试创建MyClass的一个对象到我的TestFixture类中时,则出现“MyNamespace.MyClass由于其保护级别而无法访问”的错误“
是否需要将我的类创建为公共类?但是,如果我的项目无法负担得起呢?
答
类必须public如果你希望它是从其他组件访问:
namespace MyNamespace
{
public class MyClass
{
}
}
如果项目不能不起你可以看看[InternalsVisibleTo]
属性。
是否意味着 - 如果我无法将其更改为公共,那么我无法使用NUnit测试我的应用程序? – 2010-11-18 10:46:46
不仅使用NUnit,而且使用任何测试框架。你可以在你的单元测试中总是使用反射,但这就像在腿上射击自己。这当然并不意味着你不能单元测试你的应用程序。如果这个类不公开,这意味着作者不打算在当前程序集之外访问它。你总是可以测试内部依赖这个类的公共方法,你也会隐式地测试它。 – 2010-11-18 10:48:16
然后,我可以在主项目中拥有我的测试课程吗?那么它会成为运行测试的实践吗? – 2010-11-18 10:50:56