2016-06-27 5 views
0

私はBDDテストでAutoFixtureを使用します。シーケンスにAutoFixtureからスローされる要素がありません

私はクラスのフィクスチャを作成しようとしていますが、CentralConfigurationクラスを使用しています。 CentralConfigurationコンストラクタは次のようになります。コンストラクタで

public CentralConfiguration(
    IConfigurationRepository configurationRepository, 
    ILogger logger) 
{ 
    _logger = logger; 
    _configuration = configurationRepository.Single(); 
    LogPropertyValues(); 
} 

二行目、ユーザが使用したときに正常に動作しますが、「シーケンスに要素が含まれていない」例外たびを投げ、私はテストのためにフィクスチャを構築してみてください。私も(実際にこのラインが同じ例外をスロー開始)手動Configurationオブジェクトを構築し、

configuration.Single().Returns(myCustomObject) 

を使用しますが、何も変わっていない試みました。

私は間違っていますが、どうすればこの問題を回避できますか?

+0

オートモッキンググルーライブラリも使用していますか? (例:AutoFixture.AutoMoq) –

+1

'CentralConfiguration'が単一の' Whatchamacallit'のみに依存する場合、代わりに_that_を注入してみてください。 [インジェクションコンストラクタはシンプルでなければならない](http://blog.ploeh.dk/2011/03/03/InjectionConstructorssould beesimple)。 –

答えて

0

変更CentralConfiguration

public CentralConfiguration(
    IConfiguration configuration, 
    ILogger logger) 
{ 
    _logger = logger; 
    _configuration = configuration; 
    LogPropertyValues(); 
} 

はまた、コンストラクタからLogPropertyValuesへの呼び出しを削除することを検討します。 Injection Constructors should be simple

関連する問題