gpt4 book ai didi

c# - 使用 InternalsVisibleTo 测试私有(private)成员

转载 作者:行者123 更新时间:2023-11-30 15:27:47 24 4
gpt4 key购买 nike

我有以下代码,我正在尝试对其进行单元测试:

class ConfigFile
{

private XmlDocument configData;

public ConfigFile()
{
configData = new XmlDocument();
}

public void loadConfigFile(string filename)
{
}
}

loadConfigFile 方法无效,因此我需要检查configData 字段以验证其中的数据是否正确。为此,我正在尝试使用 InternalsVisibleTo 属性 - 我已经签署了单元测试 DLL,并生成了公钥,所以我现在拥有:

    [assembly: InternalsVisibleTo("ConfigTests, PublicKey=<PUBLICKEYVALUE>")]
private XmlDocument configData;

单元测试仍然不想访问私有(private)字段:

    [TestMethod()]
public void LoadConfigFileTest()
{
ConfigFile target = new ConfigFile();
string filename = @"Config.xml";
target.loadConfigFile(filename);
Assert.AreEqual("<config></config>",target.configData.OuterXml);
}

在 Assert.AreEqual("",target.configData.OuterXml);行,我收到以下错误:

“ConfigTests.ConfigFile”不包含“configData”的定义,并且找不到接受类型为“ConfigTests.ConfigFile”的第一个参数的扩展方法“configData”(您是否缺少 using 指令或程序集引用? )

虽然 InternalsVisibleTo 属性应该允许单元测试访问私有(private)字段...还是我遗漏了什么?

最佳答案

InternalsVisibleTo 使您能够从另一个程序集中访问内部成员(非私有(private)成员)。

如果你想测试一个私有(private)方法,那么你应该问问自己这个方法是否应该是私有(private)的,或者那个特定的方法是否应该单独测试。

关于c# - 使用 InternalsVisibleTo 测试私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com