国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

測(cè)試 ASP.NET Core 中間件

這篇具有很好參考價(jià)值的文章主要介紹了測(cè)試 ASP.NET Core 中間件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????正常情況下,中間件會(huì)在主程序入口統(tǒng)一進(jìn)行實(shí)例化,這樣如果想單獨(dú)測(cè)試某一個(gè)中間件就很不方便,為了能測(cè)試單個(gè)中間件,可以使用?TestServer?單獨(dú)測(cè)試。 這樣便可以:

  • 實(shí)例化只包含需要測(cè)試的組件的應(yīng)用管道。
  • 發(fā)送自定義請(qǐng)求以驗(yàn)證中間件行為。

這樣測(cè)試的優(yōu)點(diǎn):

  • 請(qǐng)求會(huì)發(fā)送到內(nèi)存中,而不是通過網(wǎng)絡(luò)進(jìn)行序列化。
  • 這樣可以避免產(chǎn)生額外的問題,例如端口管理和 HTTPS 證書。
  • 中間件中的異常可以直接流回調(diào)用測(cè)試。
  • 可以直接在測(cè)試中自定義服務(wù)器數(shù)據(jù)結(jié)構(gòu),如?HttpContext。

設(shè)置 TestServer

在測(cè)試項(xiàng)目中,創(chuàng)建測(cè)試:

  • 生成并啟動(dòng)使用?TestServer?的主機(jī)。

  • 添加中間件使用的任何所需服務(wù)。

  • 為?Microsoft.AspNetCore.TestHost?NuGet 包添加對(duì)項(xiàng)目的包引用。

  • 將處理管道配置為使用中間件進(jìn)行測(cè)試。

我這寫了一個(gè)簡(jiǎn)單的測(cè)試代碼:

測(cè)試類:

public class UnitTest1
{
    [Fact]
    public async Task MiddlewareTest()
    {
        using var host = await new HostBuilder()
            .ConfigureWebHost(webBuilder =>
            {
                webBuilder
                    .UseTestServer()
                    .ConfigureServices(services =>
                    {
                        services.AddRouting();
                    })
                    .Configure(app =>
                    {
                        app.UseRouting();
                        app.UseMiddleware<MyMiddleware>();
                        app.UseEndpoints(endpoints =>
                        {
                            endpoints.MapGet("/hello", () =>
                                "Hello Tests");
                        });
                    });
            })
            .StartAsync();
        var client = host.GetTestClient();

        var response = await client.GetAsync("/hello");

        Assert.True(response.IsSuccessStatusCode);
        var responseBody = await response.Content.ReadAsStringAsync();
        Assert.Equal("Hello Tests", responseBody);

    }
}

自定義的 MyMiddleware 代碼如下:

public class MyMiddleware
{
    private readonly RequestDelegate _next;//請(qǐng)求委托:用于生成請(qǐng)求管道

    public MyMiddleware(ILogger<MyMiddleware> logger, RequestDelegate next)
    {
        _next = next;
    }

    public Task InvokeAsync(HttpContext context)
    {
        //context.Response.StatusCode = (int)HttpStatusCode.Found;

        // 調(diào)用下一個(gè)中間件
        return _next(context);
    }
}

?運(yùn)行測(cè)試:

測(cè)試 ASP.NET Core 中間件,c#,中間件,測(cè)試

測(cè)試通過:

測(cè)試 ASP.NET Core 中間件,c#,中間件,測(cè)試

接下來(lái)我們通過MyMiddleware自定義中間件設(shè)置一下響應(yīng)狀態(tài) StatusCode 為302:

測(cè)試 ASP.NET Core 中間件,c#,中間件,測(cè)試

再次調(diào)試測(cè)試一下:

測(cè)試 ASP.NET Core 中間件,c#,中間件,測(cè)試

測(cè)試 ASP.NET Core 中間件,c#,中間件,測(cè)試

可以看到 StatusCode: 302 ,測(cè)試沒通過,證明自定義中間件是沒問題的。?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-807470.html

到了這里,關(guān)于測(cè)試 ASP.NET Core 中間件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ASP.NET Core 基礎(chǔ)知識(shí)】--中間件--創(chuàng)建自定義中間件

    一、為什么需要自定義中間件 自定義中間件在ASP.NET Core中的應(yīng)用主要有以下幾個(gè)原因: 滿足特定需求: 默認(rèn)情況下,ASP.NET Core提供了許多內(nèi)置的中間件來(lái)處理常見的任務(wù),如身份驗(yàn)證、授權(quán)、靜態(tài)文件服務(wù)等。然而,某些項(xiàng)目可能有特定的需求,需要定制化的處理流程,這

    2024年01月17日
    瀏覽(100)
  • asp.net core中間件預(yù)防防止xss攻擊

    上面實(shí)現(xiàn)思路是針對(duì)json序列化后的string字符串進(jìn)行編碼防止xss攻擊 其他實(shí)現(xiàn)比如中間件、Action的AOP方法也是可以的,可以自己實(shí)現(xiàn) 主要是看web項(xiàng)目使用的是那個(gè)json序列化工具newtonsoft就用newtonsoft,system.text.json就用下面的那個(gè)

    2024年02月07日
    瀏覽(20)
  • 如何在 ASP.NET Core 配置請(qǐng)求超時(shí)中間件

    如何在 ASP.NET Core 配置請(qǐng)求超時(shí)中間件

    本文參考官方文檔,使用Asp.net core 8.0 的最小API 模板項(xiàng)目,配置超時(shí)中間件。 超時(shí)中間件可用于所有類型的ASP.NET Core應(yīng)用:最小 API、帶控制器的 Web API、MVC 和 Razor Pages。請(qǐng)求超時(shí)的屬性位于命名空間 Microsoft.AspNetCore.Http.Timeouts 中。 需要注意的是,當(dāng)應(yīng)用在調(diào)試模式下運(yùn)行時(shí)

    2024年01月20日
    瀏覽(93)
  • 1.ASP.NET Core中間件管道MAP的作用?

    簡(jiǎn)述: Map基于給定請(qǐng)求路徑的匹配項(xiàng)來(lái)創(chuàng)建請(qǐng)求管道分支??梢葬槍?duì)不同的路徑添加不同的中間件。 詳解: 中間件是組裝到應(yīng)用程序管道中以處理請(qǐng)求和響應(yīng)的軟件組件。 每個(gè)組件都選擇是否將請(qǐng)求傳遞給管道中的下一個(gè)組件,并可以在管道中調(diào)用下一個(gè)組件之前和之后執(zhí)

    2024年02月17日
    瀏覽(21)
  • .net 溫故知新【17】:Asp.Net Core WebAPI  中間件

    .net 溫故知新【17】:Asp.Net Core WebAPI 中間件

    到這篇文章為止,關(guān)于.NET \\\"溫故知新\\\"系列的基礎(chǔ)知識(shí)就完結(jié)了,從這一系列的系統(tǒng)回顧和再學(xué)習(xí),對(duì)于.NET core、ASP.NET CORE又有了一個(gè)新的認(rèn)識(shí)。 不光是從使用,還包括這些知識(shí)點(diǎn)的原理,雖然深入原理談不上,但對(duì)于日常使用也夠了,我想的是知其然,知其所以然。 在實(shí)際

    2024年01月18日
    瀏覽(96)
  • ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    需要添加兩個(gè)Nuget包分別是: Microsoft.AspNetCore.MiddlewareAnalysis 和 Microsoft.Extensions.DiagnosticAdapter ,前者是分析記錄中間件核心代碼實(shí)現(xiàn)后者是用來(lái)接收日志輸出的,由于是用的DiagnosticSource方式記錄日志,所以需要使用DiagnosticListener對(duì)象的SubscribeWithAdapter方法來(lái)訂閱。 這個(gè)適配器

    2023年04月09日
    瀏覽(100)
  • ASP.NET Core 的 Web Api 實(shí)現(xiàn)限流 中間件

    ASP.NET Core 的 Web Api 實(shí)現(xiàn)限流 中間件

    Microsoft.AspNetCore.RateLimiting ?中間件提供速率限制(限流)中間件。 它是.NET 7 以上版本才支持的中間件,剛看了一下,確實(shí)挺好用,下面給大家簡(jiǎn)單介紹一下: RateLimiterOptionsExtensions?類提供下列用于限制速率的擴(kuò)展方法:????? 固定窗口限制器 滑動(dòng)窗口限制器 令牌桶限

    2024年01月17日
    瀏覽(18)
  • asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core webapi 下面,想做一個(gè)過濾權(quán)限的Filter,配合token,對(duì)api做一個(gè)較為細(xì)粒度的權(quán)限控制, 該filter (PermissionFilter) 的作用是用戶LoginUser.Permissions 列表中有 Key指定的權(quán)限才可以訪問,沒有則返回403 錯(cuò)誤碼。 ? 1. 先上封裝后的使用效果 說明:要求登錄即可,不要求特定權(quán)限

    2024年02月05日
    瀏覽(22)
  • .net core 中間件

    先說一下 管道 這個(gè)概念: 在ASP.NET Core中,管道(Pipeline)是一個(gè)由多個(gè)中間件組成的處理請(qǐng)求和生成響應(yīng)的機(jī)制。請(qǐng)求從第一個(gè)中間件開始,經(jīng)過一系列中間件的處理,然后生成最終的響應(yīng)。 每個(gè)中間件都會(huì)處理請(qǐng)求,并將請(qǐng)求傳遞給下一個(gè)中間件,直到達(dá)到最后一個(gè)中間

    2024年02月14日
    瀏覽(26)
  • .net core 中什么是中間件

    在 .NET Core 中,中間件(Middleware)是 ASP.NET Core 應(yīng)用程序處理請(qǐng)求和響應(yīng)的組件。中間件位于應(yīng)用程序的請(qǐng)求處理管道中,它可以截獲請(qǐng)求,執(zhí)行一些邏輯,并將請(qǐng)求傳遞給下一個(gè)中間件或終止請(qǐng)求的執(zhí)行。 中間件的主要作用是實(shí)現(xiàn)橫切關(guān)注點(diǎn),處理跨請(qǐng)求的功能和任務(wù),例

    2024年01月17日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包