c# - 为什么 PartialViewResult 的 Razor 页面处理程序返回类型的单元测试失败?
问题描述
我正在使用 Core 3.1 Xunit 在应用程序中测试 Razor 页面,并使用 Moq 来模拟任何服务。在处理程序上运行测试PageModel
以测试它是否返回PartialViewResult
类型时,我得到以下异常:
System.NullReferenceException : Object reference not set to an instance of an object.
PageModel
处理程序看起来像这样,作为Application
属性 on PageModel
:
public PartialViewResult OnGetApplicationAddedModalPartial()
{
return Partial("_ApplicationAddedModalPartial", Application);
}
这是它的失败测试:
[Fact]
public void OnGetApplicationAddedModalPartial_WhenCalled_ShouldReturPartialViewResultType()
{
//Arrange
_sut.Application = It.IsAny<ApplicationModel>();
//Act
var result = _sut.OnGetApplicationAddedModalPartial();
//Assert
Assert.IsType<PartialViewResult>(result);
}
奇怪的是我有另一个处理程序PageModel
,我成功地测试了返回是否是JasonResult
类型。此外,我在此应用程序中有控制器,其中一些操作还返回PartialViewResult
我成功测试的类型。
PartialViewResult
a上的返回类型处理程序有什么特别之处PageModel
,如何创建测试以确保它返回PartialViewResult
?
解决方案
推荐阅读
- laravel - 如何在控制器 Laravel 中获取翻译消息?
- javascript - date function passing undefined object
- linux - 日志充斥着 sh: sleep: command not found while no sleep command in JenkinsScript
- twitter-bootstrap - 复杂的引导网格,所有项目包装
- node.js - 即使在对话流控制台中收到结果,与谷歌上的操作集成时也不会收到结果
- python - Python中有没有办法告诉特定函数如何操作我的类对象?
- jmeter - “调用 bsh 方法时出错:eval” 2 个变量的 Beanshell 断言?
- rust - 如何在 buildroot 中使用夜间 rustc 编译器
- python - 转换后如何更新数据框的列?
- c# - 赋值错误 - 值不在预期范围内