小编Bre*_*dan的帖子

无法开始使用Moq和Nunit

试图让一个非常简单的测试场景工作,让我的头靠在墙上.我确定我错过了一些非常简单的东西!

无论我做什么,当我对我的DLL运行测试时,我似乎从NUnit gui中得到以下错误: System.TypeLoadException:从程序集'DynamicProxyGenAssembly2输入'Castle.Proxies.ITestProxy',Version = 0.0.0.0,Culture = neutral, PublicKeyToken = null'正在尝试实现无法访问的接口.

现在,我在堆栈溢出和其他地方看到大量地方引用了这个错误,但我一直找到的解决方案似乎没有帮助.而且我现在甚至没有使用内部接口!我在这个地方看到的解决方案也在AssemblyInfo.cs中添加了以下行

[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2")]

我正在使用:

  • Visual Studio 2010 Professional
  • c#4.0
  • Moq 4.10810.8 Beta(已部署bin)
  • NUnit 2.5.5(安装在GAC中)

要重新创建此错误,我需要做的就是:

  1. 创建一个新的类库项目
  2. 参考Moq和单位(如上)
  3. 创建一个界面.我把我的界面称为ITest,将其公之于众,它有一个方法是'string TestMethod();'.为简单起见,我在本地项目中这样做.
  4. 创建一个名为'Testing'的类,用[TextFixture]修饰,一个名为'TestMethod'的测试方法用[Test]修饰
  5. 构建项目,然后针对Debug文件夹中生成的dll运行NUnit.

这是我的测试类的内容

namespace MoqTest {
[TestFixture]
public class Testing {
    [Test]
    public void TestMethod() {

        var testMock = new Mock<ITest>();
        testMock.Setup(x => x.TestMethod()).Returns("String val");
        var xyz = testMock.Object;

        Assert.AreEqual(1, 1);

    }
}
Run Code Online (Sandbox Code Playgroud)

}

----更新--- 将Moq版本从4.10810.8更改为4.0.10501.6后一切正常!

c# nunit moq

14
推荐指数
1
解决办法
4922
查看次数

标签 统计

c# ×1

moq ×1

nunit ×1