创建访问者列表时出现非常奇怪的错误
我有一个Component
课,其中包含Component
个私人列表。由于我想测试关于此列表的一些类行为,因此我使用Component
类的访问器。此外,我在我想避免的类的构造函数中有一些依赖项。因此,我在TestInitialize()
- 方法
TestInitialize() - 代码如下所示:
private string _testIdentifier = "TestComponent";
private int _testConsist = 1;
private Component_Accessor _target;
[TestInitialize()]
public void MyTestInitialize()
{
_target = new Component_Accessor();
_target.Identifier = new ComponentIdentifier(_testIdentifier, _testConsist);
_target._inputComponents = new List<Component_Accessor>();
_target._outputComponents = new List<Component_Accessor>();
}
Accessor-Code看起来像这样:
[Shadowing("_inputComponents")]
public List<Component_Accessor> _inputComponents { get; set; }
这编译得很好,但我得到一个RunTimeException:
“System.Collections.Generic.List'1 [DT5_Training_Simulator.Model.Components.Component_Accessor]”类型的对象无法转换为“System.Collections.Generic.List'1 [DT5_Training_Simulator.Model]类型。 Components.Component]“
其实我在这里很茫然。有谁能告诉我我做错了什么?
答案 0 :(得分:0)
您不能将Shadowing
属性与公共成员一起使用,因为它会使测试人员感到困惑。根据{{3}},Shadowing
用于测试私有属性和方法,就好像它们是公开的一样。您的媒体资源已公开,因此您需要从声明中删除Shadowing
。