Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内部可能无法为MSTest工作_C#_Unit Testing_Mstest - Fatal编程技术网

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”是项目的名称吗?应该是。。。这只是巧合,它匹配名称空间的名称,然后呢?这段代码现在正在工作。。感谢所有的回复。。这可以作为第一次尝试的教程。