【发布时间】: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