久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何使用 Moq 模擬擴展方法?

How do I use Moq to mock an extension method?(如何使用 Moq 模擬擴展方法?)
本文介紹了如何使用 Moq 模擬擴展方法?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

限時送ChatGPT賬號..

我正在編寫一個依賴于擴展方法結果的測試,但我不希望該擴展方法未來的失敗會破壞這個測試.模擬該結果似乎是顯而易見的選擇,但 Moq 似乎沒有提供覆蓋靜態方法的方法(擴展方法的要求).Moq.Protected 和 Moq.Stub 也有類似的想法,但它們似乎沒有為這種情況提供任何東西.我是否遺漏了什么,或者我應該以不同的方式解決這個問題?

I am writing a test that depends on the results of an extension method but I don't want a future failure of that extension method to ever break this test. Mocking that result seemed the obvious choice but Moq doesn't seem to offer a way to override a static method (a requirement for an extension method). There is a similar idea with Moq.Protected and Moq.Stub, but they don't seem to offer anything for this scenario. Am I missing something or should I be going about this a different way?

這里是一個簡單的例子,失敗了通常的對不可覆蓋成員的無效期望".這是一個需要模擬擴展方法的壞例子,但它應該這樣做.

Here is a trivial example that fails with the usual "Invalid expectation on a non-overridable member". This is a bad example of needing to mock an extension method, but it should do.

public class SomeType {
    int Id { get; set; }
}

var ListMock = new Mock<List<SomeType>>();
ListMock.Expect(l => l.FirstOrDefault(st => st.Id == 5))
        .Returns(new SomeType { Id = 5 });

至于任何可能建議我使用 Isolator 的 TypeMock 愛好者:我很欣賞您的努力,因為看起來 TypeMock 可以蒙住眼睛和醉酒完成這項工作,但我們的預算不會很快增加.

As for any TypeMock junkies that might suggest I use Isolator instead: I appreciate the effort since it looks like TypeMock could do the job blindfolded and inebriated, but our budget isn't increasing any time soon.

推薦答案

擴展方法只是變相的靜態方法.Moq 或 Rhinomocks 等模擬框架只能創建對象的模擬實例,這意味著模擬靜態方法是不可能的.

Extension methods are just static methods in disguise. Mocking frameworks like Moq or Rhinomocks can only create mock instances of objects, this means mocking static methods is not possible.

這篇關于如何使用 Moq 模擬擴展方法?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

ASP.NET Core authenticating with Azure Active Directory and persisting custom Claims across requests(ASP.NET Core 使用 Azure Active Directory 進行身份驗證并跨請求保留自定義聲明)
ASP.NET Core 2.0 Web API Azure Ad v2 Token Authorization not working(ASP.NET Core 2.0 Web API Azure Ad v2 令牌授權不起作用)
How do I get Azure AD OAuth2 Access Token and Refresh token for Daemon or Server to C# ASP.NET Web API(如何獲取守護進程或服務器到 C# ASP.NET Web API 的 Azure AD OAuth2 訪問令牌和刷新令牌) - IT屋-程序員軟件開發技
Azure KeyVault Active Directory AcquireTokenAsync timeout when called asynchronously(異步調用時 Azure KeyVault Active Directory AcquireTokenAsync 超時)
Getting access token using email address and app password from oauth2/token(使用電子郵件地址和應用程序密碼從 oauth2/token 獲取訪問令牌)
New Azure AD application doesn#39;t work until updated through management portal(新的 Azure AD 應用程序在通過管理門戶更新之前無法運行)
主站蜘蛛池模板: 国产小视频精品 | 亚洲精品美女视频 | 91av大全| 99久久精品免费看国产免费软件 | 91在线免费视频 | 西西裸体做爰视频 | 精品亚洲一区二区三区四区五区 | 亚洲欧美v| 欧美三区| 黄色av网站在线免费观看 | 国产片侵犯亲女视频播放 | 国产精品久久国产愉拍 | 成人欧美一区二区三区在线播放 | 久久久www成人免费精品张筱雨 | 国产亚洲精品久久午夜玫瑰园 | 成人午夜在线 | 91亚洲精品在线观看 | 丁香婷婷久久久综合精品国产 | 在线播放中文字幕 | 99精品国产一区二区三区 | 久久爱一区 | 情侣酒店偷拍一区二区在线播放 | 九色国产 | 国产精品大全 | 亚洲高清视频在线观看 | 午夜一级做a爰片久久毛片 精品综合 | 自拍在线 | 亚洲免费在线 | 国产精品久久久久久福利一牛影视 | 久久免费看 | 精品免费av | 九九亚洲精品 | 欧美亚洲国语精品一区二区 | 欧美一级二级视频 | 黄色在线观看网站 | 精国产品一区二区三区四季综 | 中文天堂在线一区 | 国产做a爱片久久毛片 | 国产精品免费在线 | 亚洲成人天堂 | 999精彩视频 |