C# 内部可能无法为MSTest工作
我已经研究并阅读了所有关于如何让内部可视性工作的帖子 但这对我不起作用 请不要对这个问题投反对票,因为我已经尽了最大努力在论坛上寻找并实现了答案 我的代码如下: *内部测试内部项目*C# 内部可能无法为MSTest工作,c#,unit-testing,mstest,C#,Unit Testing,Mstest,我已经研究并阅读了所有关于如何让内部可视性工作的帖子 但这对我不起作用 请不要对这个问题投反对票,因为我已经尽了最大努力在论坛上寻找并实现了答案 我的代码如下: *内部测试内部项目* namespace TestInteral { [TestClass] public class MyProviderTest { [TestMethod] public void TestBar() { bool re
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();
}
}
}
*内部提供商项目*
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中正确测试内部方法
谢谢假设您刚刚将您的确切代码复制并粘贴到问题中,这是一个简单的打字错误。我注意到测试程序集上的名称空间是
TestInteral
,没有“N”。并且您的InternalsVisibleTo
声明具有最后一个“N”:
[assembly: InternalsVisibleTo("TestInternal")]
可能就这些。您确定在TestInternal中引用了提供程序项目吗?您是否先尝试构建提供者项目?提供程序项目是否已签名?提供程序在TestInternal中引用。我成功地构建了第一个提供者项目。提供程序项目未签名。谢谢..根据MS文档,两个程序集都应该是未签名或已签名的。您能否确认
TestInteral
是程序集的名称,而不仅仅是名称空间?对,另外还有一些与键有关的内容。。。InternalsVisibleTo属性中的“TestInternal”是项目的名称吗?应该是。。。这只是巧合,它匹配名称空间的名称,然后呢?这段代码现在正在工作。。感谢所有的回复。。这可以作为第一次尝试的教程。