【发布时间】:2012-05-14 17:58:51
【问题描述】:
我查看了 google 和 stack over flow 并阅读了有关如何让 InternalsVisibleTo 工作的所有帖子。
但它对我不起作用。
请不要对这个问题投反对票,因为我已尽力在论坛上查看并实施答案..
我的代码如下:
* TestInternal 项目内部 *
namespace TestInteral
{
[TestClass]
public class MyProviderTest
{
[TestMethod]
public void TestBar()
{
bool retval = false;
retval = new MyProviderClass().Bar();
Assert.AreEqual(true,retval);
}
}
}
* 提供者项目内部 *
[assembly: InternalsVisibleTo("TestInternal")]
namespace Provider
{
public class MyProviderClass
{
internal bool Bar()
{
return true;
}
private void UseBar()
{
bool retval = Bar();
}
}
}
我的测试课出现以下错误。
错误 1“Provider.MyProviderClass”不包含“Bar”的定义,并且找不到接受“Provider.MyProviderClass”类型的第一个参数的扩展方法“Bar”(您是否缺少 using 指令还是程序集参考?)
请告诉我如何正确使用 InternalsVisibleTo,以便正确测试 MyProviderClass 中的 Internal 方法。
谢谢
【问题讨论】:
-
您确定在TestInternal 中引用了Provider 项目吗?您是否尝试先构建 Provider 项目? Provider 项目是否已签名?
-
Provider 在 TestInternal 中被引用。我成功地first 构建了Provider Project。提供者项目未签名。谢谢..
-
根据 MS 文档,两个程序集都应该是未签名的或已签名的
-
您能否确认
TestInteral是程序集 的名称,而不仅仅是命名空间? -
对,还有一些与键有关的东西...... InternalsVisibleTo 属性中的“TestInternal”是项目的名称吗?应该是……那么巧合的是它与命名空间的名称匹配?
标签: c# unit-testing mstest