我很厌倦,我不知道这里出了什么问题。我有一个带有一个参数的构造函数的DLGAnalysis
对象,我正在从Unit Test类调用构造函数。
这是DLGAnalysis
对象:
class DLGAnalysis
{
public DLGAnalysis(string DLG)
{
_DLG = DLG;
_namespaceAnalyses = new List<NamespaceAnalysis>();
}
}
该课程还有更多内容,但不影响问题。这是单元测试部分:
[TestClass]
public class DLGAnalysisTests
{
// Blue line here
private DLGAnalysis dlgAnalysis;
private const string TestDLGName = "TestDLGName";
[TestInitialize]
public void TestSetup()
{
// Error here
dlgAnalysis = new DLGAnalysis(TestDLGName);
}
}
“DLGAnalysis”下的蓝线说:
'AnalysisXMLParser.DLGAnalysis' is inaccessible due to its protection level
new DLGAnalysis(TestDLGName)
下的红线表示:
'AnalysisXMLParser.DLGAnalysis' does not contain a constructor that takes 1 arguments
DLGAnalysis
对象显然有一个带有1个参数的公共构造函数。我不知道这里发生了什么。有什么问题?我应该删除该文件并重新开始吗?
答案 0 :(得分:7)
您忘记设置班级的保护级别
public class DLGAnalysis // <== public
{
未设置保护级别会将该类默认为internal
。
由于您的单元测试项目可能位于不同的程序集中,因此无法访问internal
类。