如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

卡巴斯尔

我想编写用于在ASP.NET Core 1中上传文件的测试,但似乎找不到一种模拟/实例化从IFormFile派生的对象的好方法。有关如何执行此操作的任何建议?

谢谢。

恩科西

假设您有一个控制器。

public class MyController : Controller {
    public Task<IActionResult> UploadSingle(IFormFile file) {...}
}

...IFormFile.OpenReadStream()使用被测方法访问的位置。您可以使用Moq模拟框架创建测试以模拟流数据。

[TestClass]
public class IFormFileUnitTests {
    [TestMethod]
    public async Task Should_Upload_Single_File() {
        //Arrange
        var fileMock = new Mock<IFormFile>();
        //Setup mock file using a memory stream
        var content = "Hello World from a Fake File";
        var fileName = "test.pdf";
        var ms = new MemoryStream();
        var writer = new StreamWriter(ms);
        writer.Write(content);
        writer.Flush();
        ms.Position = 0;
        fileMock.Setup(_ => _.OpenReadStream()).Returns(ms);
        fileMock.Setup(_ => _.FileName).Returns(fileName);
        fileMock.Setup(_ => _.Length).Returns(ms.Length);

        var sut = new MyController();
        var file = fileMock.Object;

        //Act
        var result = await sut.UploadSingle(file);

        //Assert
        Assert.IsInstanceOfType(result, typeof(IActionResult));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET Core MVC中对RazorViewEngineOptions进行单元测试?

来自分类Dev

如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

来自分类Dev

如何在Asp.net Core MVC(又名Asp.Net 5 RC1)中检查响应cookie?

来自分类Dev

如何在ASP.NET MVC 6(ASP.NET Core)中获取returnUrl AccessDeniedPath

来自分类Dev

如何在Asp.net Core 1中创建请求以进行测试

来自分类Dev

如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

如何在ASP.NET Core 3.1 MVC中进行自定义路由

来自分类Dev

如何在ASP.NET Core MVC中进行IEnumerable查询?

来自分类Dev

如何在ASP.NET 5 RC1 MVC中使用IFormFile保存上传的文件

来自分类Dev

如何在ASP.NET Core中的.cshtml文件中获取当前的MVC区域名称

来自分类Dev

如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

来自分类Dev

如何在Asp.Net Core MVC中的隐藏表单中确保EntityId的安全性?

来自分类Dev

如何在ASP.NET Core MVC中启用跨域请求(CORS)

来自分类Dev

如何在ASP .Net Core 3.1 MVC应用程序中调试JavaScript(剃刀视图-* .cshtml)?

来自分类Dev

如何在ASP.NET Core MVC App中获取DropDownList的选定值

来自分类Dev

如何在Asp.Net.Core Mvc Signalr中建立一对一聊天系统?

来自分类Dev

如何在ASP.NET CORE MVC中覆盖默认的Identity AccessDenied路由

来自分类Dev

如何在ViewComponents的ASP.net MVC Core中显示外部表值

来自分类Dev

如何在asp.net core MVC应用程序中添加页面列表?

来自分类Dev

如何在asp.net mvc core中获取页面路径

来自分类Dev

如何在 ASP.NET Core 2 MVC 中使用依赖注入设置单元可测试模型验证?

来自分类Dev

如何在ASP.NET 5 / MVC 6中的单元测试中访问HttpContext

来自分类Dev

如何在ASP.NET vNext MVC 6(beta1)项目之间共享视图?

来自分类Dev

如何从ASP .NET Core MVC 1.0中的视图访问会话

来自分类Dev

如何在Asp.net Core rc1中的静态方法中使用DI

来自分类Dev

在.NET Core MVC中,如何在AuthorizationHandler内访问DbContext?

来自分类Dev

如何在ASP Net Core MVC应用程序中从Azure AD B2C获取用户列表?

Related 相关文章

  1. 1

    如何在ASP.NET Core MVC中对RazorViewEngineOptions进行单元测试?

  2. 2

    如何在Asp.Net Core MVC 1.0(aka MVC 6 RC1)中访问会话超时值?

  3. 3

    如何在Asp.net Core MVC(又名Asp.Net 5 RC1)中检查响应cookie?

  4. 4

    如何在ASP.NET MVC 6(ASP.NET Core)中获取returnUrl AccessDeniedPath

  5. 5

    如何在Asp.net Core 1中创建请求以进行测试

  6. 6

    如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

  7. 7

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  8. 8

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  9. 9

    如何在ASP.NET Core 3.1 MVC中进行自定义路由

  10. 10

    如何在ASP.NET Core MVC中进行IEnumerable查询?

  11. 11

    如何在ASP.NET 5 RC1 MVC中使用IFormFile保存上传的文件

  12. 12

    如何在ASP.NET Core中的.cshtml文件中获取当前的MVC区域名称

  13. 13

    如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

  14. 14

    如何在Asp.Net Core MVC中的隐藏表单中确保EntityId的安全性?

  15. 15

    如何在ASP.NET Core MVC中启用跨域请求(CORS)

  16. 16

    如何在ASP .Net Core 3.1 MVC应用程序中调试JavaScript(剃刀视图-* .cshtml)?

  17. 17

    如何在ASP.NET Core MVC App中获取DropDownList的选定值

  18. 18

    如何在Asp.Net.Core Mvc Signalr中建立一对一聊天系统?

  19. 19

    如何在ASP.NET CORE MVC中覆盖默认的Identity AccessDenied路由

  20. 20

    如何在ViewComponents的ASP.net MVC Core中显示外部表值

  21. 21

    如何在asp.net core MVC应用程序中添加页面列表?

  22. 22

    如何在asp.net mvc core中获取页面路径

  23. 23

    如何在 ASP.NET Core 2 MVC 中使用依赖注入设置单元可测试模型验证?

  24. 24

    如何在ASP.NET 5 / MVC 6中的单元测试中访问HttpContext

  25. 25

    如何在ASP.NET vNext MVC 6(beta1)项目之间共享视图?

  26. 26

    如何从ASP .NET Core MVC 1.0中的视图访问会话

  27. 27

    如何在Asp.net Core rc1中的静态方法中使用DI

  28. 28

    在.NET Core MVC中,如何在AuthorizationHandler内访问DbContext?

  29. 29

    如何在ASP Net Core MVC应用程序中从Azure AD B2C获取用户列表?

热门标签

归档