c#-xUnit.net IsType在MS测试中等效,返回类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-xUnit.net IsType在MS测试中等效,返回类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1858字,纯文字阅读大概需要3分钟。
内容图文
![c#-xUnit.net IsType在MS测试中等效,返回类型](/upload/InfoBanner/zyjiaocheng/669/05b2b7f10e344e77802849011d674d70.jpg)
我正在追踪this guide,并且尝试使用MS Test编写类似的测试. MS Test是否有一个IsType(),当强制转换成功时会返回对象?
从this comparison开始,我可以使用IsInstanceOfType(),但返回类型为void.
我正在尝试在MS Test中实现这一行:
var badRequestResult = Assert.IsType< BadRequestObjectResult>(结果);
[Fact]
public async Task IndexPost_ReturnsBadRequestResult_WhenModelStateIsInvalid()
{
// Arrange
var mockRepo = new Mock<IBrainstormSessionRepository>();
mockRepo.Setup(repo => repo.ListAsync()).Returns(Task.FromResult(GetTestSessions()));
var controller = new HomeController(mockRepo.Object);
controller.ModelState.AddModelError("SessionName", "Required");
var newSession = new HomeController.NewSessionModel();
// Act
var result = await controller.Index(newSession);
// Assert
var badRequestResult = Assert.IsType<BadRequestObjectResult>(result);
Assert.IsType<SerializableError>(badRequestResult.Value);
}
是的,我可以先使用as进行转换,然后再使用IsInstanceOfType……只是想知道是否有单线.
var badRequestResult = result as BadRequestObjectResult;
Assert.IsInstanceOfType(badRequestResult, typeof(BadRequestObjectResult));
解决方法:
我从未遇到过MSTest中的等效版本.
如果是强制类型转换,则无需检查实例是否为类型.只要检查它是否不为空.
// Act
var result = await controller.Index(newSession);
// Assert
var badRequestResult = result as BadRequestObjectResult;
Assert.IsNotNull(badRequestResult, "Expected BadRequestObjectResult");
Assert.IsInstanceOfType(badRequestResult.Value,typeof(SerializableError));
否则,您可以创建自己的断言
public static class AssertExtension {
public static TExpected AssertIsType<TExpected>(this object actual, string message = null) {
TExpected result = actual as TExpected;
Assert.IsNotNull(result, message);
return result;
}
}
提供所需的行为
// Assert
var badRequestResult = result.AssertIsType<BadRequestObjectResult>();
badRequestResult.Value.AssertIsType<SerializableError>();
内容总结
以上是互联网集市为您收集整理的c#-xUnit.net IsType在MS测试中等效,返回类型全部内容,希望文章能够帮你解决c#-xUnit.net IsType在MS测试中等效,返回类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。