私の単体テストでは、私はAssemblyInitialize
,ClassInitialize
とTestInitializeのようなものを使ってテストを設定します。 AssemblyInitialize
私は、サービス、作業単位とリポジトリ(すべてUnity/Dependency Injection)の作成のために、いくつかのシングルトンファクトリを初期化します。私のTestInitializeでは、各テストが独立して実行できることを確認する必要があるという状態を明確にします。テスト可能性を向上させるために使い捨て依存関係を構築する場所はどこですか?
トラフStackoverflow私は次の記事を回った:Writing Testable CodeとHow to Think About the “new” Operator with Respect to Unit Testing。私は書いたコードについてどう思うかを変更したと言わなければならないが、私の心はまだ鳴っている。
はたとえば、次のコードを取る:私は心の中で以前の記事で一種のこのタイプを変更する必要がありますどのように
Presenter = new MyPresenter(this);
if (!IsPostback)
{
presenter.PrepareView();
}
をこのようにaspxページで使用されている
public class MyPresenter : BasePresenter<IMyView>
{
public MyPresenter(IMyView view)
: base(view)
{
}
public void PrepareView()
{
using (IMyService service = ServiceFactory.Instance.CreateService<IMyService>())
{
View.Data = service.GetData();
}
}
}
? PrepareViewメソッドにサービスインスタンスを渡す必要がありますか?しかし、私のASPXページでは、サービスや工場について知り、使用後に処分する必要があります。
シングルトン工場ではどうしたらよいですか?それをクラスのプロパティにして、それをUnityに注入しますか?
私は2つだけのオプションを参照
記事で言及されているGuiceのようなNinjectですか?私はそれを見てみましょう。 –
はい、それです。 –