Autofixture: AutoData属性によって作成されたフィクスチャへのアクセス。

作成日 2018年04月25日  ·  7コメント  ·  ソース: AutoFixture/AutoFixture

やあ、
今のところ、私はこのような器具にしかアクセスできません。

[Theory, AutoData]
public void Dummy(string dummy)
{
    MethodBase method = MethodBase.GetCurrentMethod();
    IFixture fixture = method.GetCustomAttribute<AutoDataAttribute>().Fixture;


    Assert.Equal(dummy, dummy);
}

そして、「AutoDataAttribute.Fixture」は廃止された警告です。

AutoData属性で作成されたフィクスチャにアクセスするためのより良い方法はありますか? パラメータと手動作成およびインジェクションを組み合わせたいと思います。
ありがとう

question

最も参考になるコメント

はい、それは本当に良い方法です。

これをAutoDatawikiに入れることができますか?
私はこれを行う方法を見つけるためにどこでも検索しました。
IOCコンテナがIFixtureを登録したとは思いませんでした。

どうもありがとう!

全てのコメント7件

やあ、

確かに、基礎となるフィクスチャにIFixtureインスタンスを解決するように依頼するだけで、selfが返されます。

c# [Theory, AutoData] public void Dummy(string dummy, IFixture fixture) { }

それはあなたのために働きますか? :ウィンク:

はい、それは本当に良い方法です。

これをAutoDatawikiに入れることができますか?
私はこれを行う方法を見つけるためにどこでも検索しました。
IOCコンテナがIFixtureを登録したとは思いませんでした。

どうもありがとう!

なぜIoCにフィクスチャに登録しようとしているのですか? 私の経験では、それは決して必要ありません

主に、複雑な繰り返しインターフェイス設定のテストメソッドパラメータを最小限に抑えるためです。

[Theory, AutoMoqData]
public void Dummy(IFixture fixture, [Frozen]Mock<IComplexInterfaceWith30SubInterfaces> needed, TestClass sut)
{
    //This will add interfaces setups for needed by retrieving them from the IoC container or by property access.
    SetupInterfaces(fixture, needed);
    //We can now use needed injected in sut.
}

もっと簡単な例があります

私はあなたがこれを好む

[Theory, AutoMoqData]
public void Dummy(IFixture fixture)
{
    Assert.Equal(String.Empty, String.Empty);
}

これ以上

[Fact]
public void Dummy2()
{
    IFixture fixture = new Fixture().Customize(new AutoMoqCustomization());

    Assert.Equal(String.Empty, String.Empty);
}

主に、複雑な繰り返しインターフェイス設定のテストメソッドパラメータを最小限に抑えるためです。

同意します、私はテストで同様の使用法を持っています。 唯一の違いは、これらの補助的な繰り返しメソッドの前にWhen()を付けることを好むため、テストは次のようになります。

c# public void Test([Frozen] IProvider provider, ISut sut, IFixture fixture) { // arrange WhenProviderReturnsOnlyInitializedEntities(provider, fixture); ..... }

しかし、基本的にアイデアは同じです😉

これ以上のアクションは必要ないので、これを閉じます。

これをAutoDatawikiに入れることができますか?

@ malylemire1将来どこかにドキュメントサイトを作成する予定です。 ただし、このサンプルをウィキに自由に追加して

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

zvirja picture zvirja  ·  4コメント

joelleortiz picture joelleortiz  ·  4コメント

zvirja picture zvirja  ·  3コメント

ecampidoglio picture ecampidoglio  ·  7コメント

ploeh picture ploeh  ·  7コメント