使用VS 2010,NUnit,Typemock,实体框架...

我在使用NUnit / Typemock时遇到了一个奇怪的问题。我是测试领域的新手,所以可能是初学者的错误。这是我遇到的问题。


测试项目已编译。
从Visual Studio中启动NUnit
从NUnit客户端应用程序中运行测试。第一次运行,第一次测试总是失败。
重新运行并测试通过。


首先进行什么测试都没有关系。我可以选择一个特定的测试。如果它是第一个运行,它将在第一次执行时失败。它继续运行。

这是一个有问题的示例类。但是上课没关系。无论首先运行什么测试,都存在此问题。异常代码只是用来测试Typemock加载的东西。它在WhenCalled上失败。

[TestClass, Isolated]
public class FirstTest
{

    [TestMethod]
    public void TestMe()
    {
        Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
        Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
        Assert.IsTrue(true);
    }
}


以下是错误消息。



HCSO.ESL.Test.Fakes.FirstTest.TestMe:
TypeMock.ArrangeActAssert.NestedCallException:
* WhenCalled不支持使用属性调用作为参数。
-要修复此传递错误,而不是AssemblyReader.IsDotNetFile




示例-这将起作用:
MyObj参数= Something.Other()。GetStuff();
Isolate.WhenCalled(()=> ObjUnderTest.MethodUnderTest(argument))...;


示例-这不起作用:
Isolate.WhenCalled(()=> ObjUnderTest.MethodUnderTest(Something.Other()。GetStuff()))...;


(结束错误信息)



有人知道为什么第一个测试总是失败,但是重新运行时运行良好吗?关于如何加载程序集的东西?

(编辑)其他详细信息:



版本:
Typem隔离器:6.0.10.0
的Visual Studio:10.0.30319.1

另外,我添加了简化的测试代码。这样,您可以看到正在测试的代码。是的,该测试第一次失败,此后每次运行都通过。

[TestClass, Isolated]
public class FirstTest
{

    public static int DummyCall(int i)
    {
        return 0;
    }

    [TestMethod]
    public void TestMe()
    {
        Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
        //Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
        Isolate.WhenCalled(() => FirstTest.DummyCall(-1)).WillReturn(1);
        Assert.IsTrue(true);
    }
}

最佳答案

我在Typemock工作

看起来很奇怪,因为从它的外观来看这绝对不是嵌套调用。
您能否尝试向我们发送电子邮件给我们一个小解决方案,以向[email protected]演示该问题?

什么是UnitOfWorkManager?这是属于EF的类,还是您的代码?

另外,您使用的是哪个版本的Isolator?

关于c# - NUnit和Typemock的奇怪问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6781635/

10-09 13:23