Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ms Fakes框架,不支持例外_C#_Mocking_Microsoft Fakes - Fatal编程技术网

C# Ms Fakes框架,不支持例外

C# Ms Fakes框架,不支持例外,c#,mocking,microsoft-fakes,C#,Mocking,Microsoft Fakes,为什么此代码在运算符中抛出ShimNotSupportedException ShimStreamReader.AllInstances.EndOfStreamGet = ((s)=>calls < 1); [TestMethod] public void GetAllLinesFromFile__() { int calls = 0; using (ShimsContext.Create())

为什么此代码在运算符中抛出ShimNotSupportedException

ShimStreamReader.AllInstances.EndOfStreamGet = ((s)=>calls < 1);

[TestMethod]
        public void GetAllLinesFromFile__()
        { 
            int calls = 0;

            using (ShimsContext.Create())
            {
                ShimStreamReader.AllInstances.EndOfStreamGet = ((s)=>calls < 1);
                ShimStreamReader.AllInstances.ReadLine = (s) =>
                                                             {
                                                                 calls++;
                                                                 return ";;;;;;;;;;";
                                                             };
                var streamFake = new ShimStreamReader();
                var obj = new MyFile(streamFake, ';');

                Assert.IsTrue(obj.GetAllLinesFromFile().Count() == 1);
            }

        }
ShimStreamReader.AllInstances.EndOfStreamGet=((s)=>调用<1);
[测试方法]
public void GetAllLinesFromFile__()的
{ 
int=0;
使用(ShimsContext.Create())
{
ShimStreamReader.AllInstances.EndOfStreamGet=((s)=>调用<1);
ShimStreamReader.AllInstances.ReadLine=(s)=>
{
调用++;
返回“;;;;;;”;
};
var streamFake=new-ShimStreamReader();
var obj=新的MyFile(streamFake,“;”);
Assert.IsTrue(obj.GetAllLinesFromFile().Count()==1);
}
}

我运行了您的代码,在VS 2012 RC中运行良好。当我在VS 11测试版中打开一个解决方案时,我确实遇到了类似的问题,该解决方案是在VS 2010中创建的。我找到的唯一解决办法是在VS 11 Beta版中创建一个新的解决方案。

可能是您正在从Resharper或其他testrunner运行测试吗

我写了一些与此相关的博客文章,可能会有所帮助:


可能的原因之一是缺少应与xxx.fakes.dll一起生成的fakesconfig文件

我使用一个中心项目来生成假程序集,并使用依赖于中心项目的其他项目来使用生成的假程序集

让我们称之为伪程序集消费项目FOO

我确实遇到了ShimNotSupportedException。经过一些调查(几天!),我发现fakesconfig文件没有与假程序集一起复制到FOO.dll所在的文件夹中。在那里复制了fakesconfig文件之后,我的测试通过了


希望这能有所帮助。

另一种情况是安装了Typemock并启用了它


禁用Typemock->Suspend mock

是,当您尝试在第三方测试工具中运行伪造测试时,此异常是典型的。