【发布时间】:2013-12-24 00:08:14
【问题描述】:
我有一组使用 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>, 的具体扩展,结果都相同。
【问题讨论】:
-
你是从你的编辑器那里复制过来的,还是你可能输入错误?您缺少正确的委托分配
= () =>和ShouldBeOfType<T>()末尾的方法调用括号 -
而且,抱歉,我应该在我的编辑中解释,但我取消了测试的注释,以便它可以很好地着色(更容易捕捉到错误的格式)。
-
Anthony,我正在支持你的评论,尽管它对除我之外的任何人都没有用。你是对的!伙计,我们有几个人看过,但我们对测试跑步者明显的崩溃感到困惑。 Dopeslaps 对我来说。 :-)
-
我想出了一个办法让它成为答案并抱怨一般的 resharper ;)