使用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/