第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 NSubstitute 框架驗(yàn)證是否收到特殊類型的 AddSingleton

如何使用 NSubstitute 框架驗(yàn)證是否收到特殊類型的 AddSingleton

C#
嚕嚕噠 2023-07-09 09:56:01
我想使用模擬庫(kù)和.mock 來(lái)模擬IServiceCollection檢查是否AddSingleton使用特定接口和具體類型進(jìn)行調(diào)用。NsubstitexUnit這是我的單元測(cè)試:[Fact] public checkIfServicesAddedTo_DI(){    var iServiceCollectionMock = Substitute.For<IServiceCollection>();    var iConfiguration = Substitute.For<IConfiguration>();    MatchServicesManager servicesManager = new MatchServicesManager();    servicesManager.AddServices(iServiceCollectionMock, iConfiguration);    iServiceCollectionMock.Received(1).AddSingleton(typeof(IMatchManager) , typeof(MatchManager));}這是實(shí)現(xiàn):public class MatchServicesManager : IServicesManager{    public void AddServices(IServiceCollection services, IConfiguration configuration)    {        services.AddSingleton<IMatchManager, MatchManager>();    }}我預(yù)計(jì)測(cè)試會(huì)成功,但它失敗并出現(xiàn)以下錯(cuò)誤:NSubstitute.Exceptions.ReceivedCallsException :預(yù)計(jì)收到正好 1 個(gè)呼叫匹配:Add(ServiceDescriptor) 實(shí)際上沒(méi)有收到匹配的呼叫。收到 1 個(gè)不匹配的呼叫(不匹配的參數(shù)以“*”字符表示):Add(*ServiceDescriptor *)
查看完整描述

1 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

AddSingleton是 上的擴(kuò)展方法IServiceCollection。這使得模擬或驗(yàn)證變得更加困難。


考慮使用接口的實(shí)際實(shí)現(xiàn),然后在執(zhí)行被測(cè)方法后驗(yàn)證預(yù)期行為。


例如


public void checkIfServicesAddedTo_DI() {

    //Arrange

    var services = new ServiceCollection();// Substitute.For<IServiceCollection>();

    var configuration = Substitute.For<IConfiguration>();

    MatchServicesManager servicesManager = new MatchServicesManager();


    //Act

    servicesManager.AddServices(services, configuration);


    //Assert (using FluentAssertions)

    services.Count.Should().Be(1);

    services[0].ServiceType.Should().Be(typeof(IMatchManager));

    services[0].ImplementationType.Should().Be(typeof(MatchManager));

}


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)