DotNetCore跨平台~功能测试TestHost的使用

简介:

之前写了关于自动化测试的相关文章,包括gitlab,unittest,jenkins pipeline等,基于都是功能点的测试,当我们的框架或者业务修改之后,需要走一篇自动化测试,以此来保证我们的修改过的功能是正确的,而今天主要说一下流程测试,从api网站的入口,从一个请求开始到结束这个过程,我们可以通过TestHost来完成!

一个完整的流程化测试需要经过以下几个步骤:

  1. 建立xunit项目
  2. 引用需要测试的api项目
  3. 添加WebFixture拦截器,注意其中的startup是指api项目的,建立测试使用的TestServer和HttpClient
  4. 在xunit里使用HttpClient即可

一 建立xunit项目

二 引用需要测试的api项目

三 添加WebFixture拦截器,注意其中的startup是指api项目的,建立测试使用的TestServer和HttpClient

    /// <summary>
    /// Web拦截器
    /// </summary>
    public class WebFixture
    {
        public TestServer Server;
        public HttpClient Client;
        public WebFixture()
        {
            var hostBuilder = new WebHostBuilder();
            var Server = new TestServer(hostBuilder.UseStartup<Lind.DotNetCore.RepositoryTest.Startup>());
            this.Client = Server.CreateClient();
        }

    }

四 在xunit里使用HttpClient即可

       [Fact]
        public void TestLindDotNetCoreRepositoryTest()
        {
            var msg = _webFixture.Client.GetAsync("/dapper")
                 .Result
                 .Content
                 .ReadAsStringAsync()
                 .Result;

            Assert.NotNull(msg);
        }

这样,一个流程化测试的例子就完成了,还是比较简单的!

关键在于找到这种测试的方法!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:DotNetCore跨平台~功能测试TestHost的使用,如需转载请自行联系原博主。

目录
相关文章
|
监控 测试技术 持续交付
掌握跨平台测试策略:确保应用的无缝体验
【10月更文挑战第14天】在多元化设备和操作系统的今天,跨平台测试策略成为确保应用质量和性能的关键。本文探讨了跨平台测试的重要性、核心优势及实施步骤,涵盖Web、移动和桌面应用的测试方法,帮助开发者提高应用的无缝体验。
|
人工智能 自然语言处理 测试技术
跨平台多模态智能体基准测试来了!但全班第一只考了35.26分
【8月更文挑战第31天】近日,Tianqi Xu等研究者在arXiv发布了题为《CRAB: Cross-environment Agent Benchmark for Multimodal Language Model Agents》的论文,提出了一种全新的智能体基准测试框架CRAB,旨在解决现有MLM智能体交互环境基准测试的局限性。CRAB支持跨环境任务,提供细粒度评价方法及高效的任务构建机制,并包含100个跨平台任务的Crab Benchmark-v0。实验结果显示,GPT-4o单智能体在该基准测试中表现最佳,任务完成率达35.26%。CRAB为未来跨环境智能体研究提供了重要参考。
263 1
|
Dart 前端开发 测试技术
移动应用开发的未来:跨平台框架与原生系统的融合深入理解软件测试中的持续集成与持续部署(CI/CD)
【5月更文挑战第30天】 在本文中,我们将深入探讨移动应用开发领域的最新趋势:跨平台开发框架与原生操作系统的融合。随着移动设备成为日常生活的核心,高效、灵活且性能卓越的应用程序需求日益增长。文章分析了当前主流的跨平台工具如React Native和Flutter,并探讨了它们如何与iOS和Android等原生系统相互作用,以及这种融合对开发者、用户和整个移动生态系统意味着什么。我们还将预测未来可能的技术发展,并提出相应的策略建议。
|
JSON NoSQL Linux
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
1602 0
VS2022OpenCV跨平台Linux CMake项目搭建过程(Jetson nano测试)
|
测试技术 持续交付 容器