我有一组使用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>>;
我正在跑步:
我尝试将ShouldBeOfType
中的类型替换为ReportBase<BarChart>,
接口的实现以及具有相同结果的ReportBase<BarChart>,
的具体扩展名。
答案 0 :(得分:1)
你必须小心使用ReSharper,特别是在调用测试运行器时。它并不总是运行编译器,即使它运行,它也可以使用一些愚蠢的,过时的卷影副本。你会想要仔细检查你的语法......
It should_return_a_concrete = _result.Data.ShouldBeOfType<IReportBase<BarChart>>;
您错过了委托作业= () =>
,以及ShouldBeOfType<T>()
末尾的方法调用问题。