为什么ReSharper 8测试运行器会在此规范上崩溃?

时间:2013-12-06 15:13:51

标签: c# resharper mspec

我有一组使用MSpec运行的测试。前两个运行正常,但是当我包含第三个测试时,测试运行器在运行任何测试之前崩溃并出现NullReferenceException:

Because of = () => _result = Subject.GetReport(fooReportType);

It should_return_a_success = () => _result.Successful.ShouldBeTrue();
It should_return_something = () => _result.Data.ShouldNotBeNull();

// this test crashes
It should_return_a_concrete = _result.Data.ShouldBeOfType<IReportBase<BarChart>>;

我正在跑步:

  • VS 2013 RC
  • ReSharper版本8.0.2000.2660
  • Machine.Specifications 0.5.16(根据NuGet)

我尝试将ShouldBeOfType中的类型替换为ReportBase<BarChart>,接口的实现以及具有相同结果的ReportBase<BarChart>,的具体扩展名。

1 个答案:

答案 0 :(得分:1)

你必须小心使用ReSharper,特别是在调用测试运行器时。它并不总是运行编译器,即使它运行,它也可以使用一些愚蠢的,过时的卷影副本。你会想要仔细检查你的语法......

It should_return_a_concrete = _result.Data.ShouldBeOfType<IReportBase<BarChart>>;

您错过了委托作业= () =>,以及ShouldBeOfType<T>()末尾的方法调用问题。