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

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

XUnit CollectionFixture 多次實(shí)例化

XUnit CollectionFixture 多次實(shí)例化

PHP
瀟湘沐 2024-01-20 20:59:22
我剛剛開始使用xUnitClassFixtures中的集合,所以我可能做錯(cuò)了,但我的理解是我可以創(chuàng)建一個(gè),通過將其分配給一個(gè)集合,然后所有具有該屬性的測試類相同的連接名稱將共享固定裝置的相同實(shí)例。ICollectionFixture<MyFixture>CollectionDefinitionAttribtueCollection首先用一個(gè)簡單的例子來證明Fixture每個(gè)測試類只實(shí)例化一次public class SampleFixture:IDisposable{    public static int ConstructorCount { get; set; }    public static int DisposeCount { get; set; }    public SampleFixture()    {        ConstructorCount++;    }    public void Dispose()    {        DisposeCount++;    }}public class SampleTestClass1 : IClassFixture<SampleFixture>{    private readonly ITestOutputHelper outputHelper;    private readonly SampleFixture sampleFixture;    public SampleTestClass1(ITestOutputHelper outputHelper, SampleFixture sampleFixture)    {        this.outputHelper = outputHelper;        this.sampleFixture = sampleFixture;    }    [Fact]    public void Test1()    {        this.outputHelper.WriteLine($"Test1 - Constructor Count: {SampleFixture.ConstructorCount} DisposeCount: {SampleFixture.DisposeCount}");        Assert.Equal(1,SampleFixture.ConstructorCount);    }    [Fact]    public void Test2()    {        this.outputHelper.WriteLine($"Test2 - Constructor Count: {SampleFixture.ConstructorCount} DisposeCount: {SampleFixture.DisposeCount}");        Assert.Equal(1,SampleFixture.ConstructorCount);            }}運(yùn)行測試,它們都通過了。1 通過構(gòu)造函數(shù)意味著測試類中的兩個(gè)測試都使用我的裝置的同一實(shí)例。涼豆子。現(xiàn)在讓我們創(chuàng)建一個(gè)CollectionFixture,添加另一個(gè)測試類并使用相同的Collection屬性裝飾它們。[CollectionDefinition("SampleFixture")]public class SampleFixtureCollection : ICollectionFixture<SampleFixture>{    }public class SampleFixture:IDisposable{    public static int ConstructorCount { get; set; }    public static int DisposeCount { get; set; }    public SampleFixture()    {        ConstructorCount++;    }    public void Dispose()    {        DisposeCount++;    }}現(xiàn)在我所有的測試都失敗了。查看第二個(gè)測試類中失敗測試的消息:測試 1 - 構(gòu)造函數(shù)計(jì)數(shù):3 DisposeCount:1看來構(gòu)造函數(shù)被調(diào)用了3 次! 在夾具收集啟動(dòng)期間一次,然后為每個(gè)測試類再一次。這里給出了什么?我的兩個(gè)測試都綁定到同一個(gè)集合,但每個(gè)測試類都獲得自己的測試裝置實(shí)例。我在這里做錯(cuò)了什么還是這是一個(gè)錯(cuò)誤?(我在 GitHub 中沒有發(fā)現(xiàn)任何提及)。將 xUnit v2.4.1 與 .net core 2.1 結(jié)合使用
查看完整描述

1 回答

?
長風(fēng)秋雁

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

我想到了。


使用 Fixture 集合時(shí),測試類不應(yīng)實(shí)現(xiàn) IClassFixture 接口。


改變


[Collection("SampleFixture")]

public class SampleTestClass1  : IClassFixture<SampleFixture>

{...}


[Collection("SampleFixture")]

public class SampleTestClass1  // <-- Removed IClassFixture<SampleFixture>

{...}

解決了問題。


查看完整回答
反對 回復(fù) 2024-01-20
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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