内部可见到不为 MSTest 工作

本文关键字:MSTest 工作 内部 | 更新日期: 2023-09-27 18:34:18

我已经研究了谷歌和堆叠流量,并阅读了所有关于如何让InternalsVisibleTo工作的文章。

但它对我不起作用。

请不要对这个问题投反对票,因为我已尽力在论坛上查看和实施答案。

我的代码如下:

* 内部

测试内部项目 *

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 方法。

谢谢

内部可见到不为 MSTest 工作

假设您刚刚将 EXACT 代码复制并粘贴到问题中,这是一个简单的错字。 我注意到测试程序集上的命名空间TestInteral没有"N"。您的InternalsVisibleTo声明具有最后一个"N":

[assembly: InternalsVisibleTo("TestInternal")]

可能就是这样。