InternalsVisibleTo不适用于MSTest

时间:2012-05-14 17:58:52

标签: c# unit-testing mstest

我查看了googlestack 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'的定义,并且没有扩展方法'Bar'可以找到接受类型'Provider.MyProviderClass'的第一个参数(你是否缺少using指令或汇编参考?)

请告诉我如何正确使用InternalsVisibleTo,以便我可以正确测试MyProviderClass中的内部方法。

由于

1 个答案:

答案 0 :(得分:11)

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

[assembly: InternalsVisibleTo("TestInternal")]

可能就是这样。