【问题标题】:How do you make internals visible to nCrunch如何让 nCrunch 可以看到内部结构
【发布时间】:2014-03-09 20:13:12
【问题描述】:

MyProject 本身有一个内部类和方法。

namespace MyProject
{    
    internal class InboundMailAlertParser
    {
        internal InboundMailAlert ParseMessageBody(string body)
        { 
            ...
        }
    }
}

我在 MyProject AssemblyInfo.cs 中使用 InternalsVisibleTo 向单元测试程序集公开内部类/方法。

[assembly: InternalsVisibleTo("MyProject.Tests")]

我的测试看起来像这样

namespace MyProject.Tests
{
    [TestClass]
    public class InboundMailAlertParserTests
    {
        [TestMethod]
        public void ParsesBody()
        {           
            InboundMailAlertParser parser = new InboundMailAlertParser();
            parser.ParseMessageBody(messageBody.ToString());
        }
    }
}

我的测试在 Visual Studio 中运行时顺利通过,但由于无法看到被测 MyProject 程序集的内部 InboundMailAlertParser,nCrunch 无法构建单元测试项目。我必须指出另一个 nCrunch 程序集应该具有内部可见性以允许 nCrunch 能够构建测试程序集吗?

【问题讨论】:

  • 这很奇怪——应该没问题。在 Noda Time(使用 nCrunch)中,我对此没有任何问题。您是否尝试过干净的重建?
  • 在 NCrunch 测试窗口中使用干净的构建并重新启动:InboundMailAlertParserTests.cs (26)#0:找不到类型或命名空间名称“InboundMailAlertParser”(您是否缺少 using 指令还是程序集参考?)
  • 嗯。如果它在 VS 下构建,它在 NCrunch 中应该没问题。你的程序集签名了吗?
  • 一点也没有。 =\ 我还遇到了其他问题,无法构建并要求我设置特定的依赖项,例如 MS Fakes 设置文件和诸如此类的东西。

标签: c# unit-testing ncrunch


【解决方案1】:

原来我忽略了 nCrunch 配置中的一个组件(项目)。一旦我启用它,项目就可以正确构建并且我得到了我可爱的绿点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多