単体テストではAssemblyInitialize
、ClassInitialize
やTestInitializeなどを使用してテストを構成します。サービス、作業単位、およびリポジトリを作成するためにいくつAssemblyInitialize
かのシングルトン ファクトリを初期化します (すべてユニティ/依存性注入を使用します)。私のTestInitializeでは、各テストが独立して実行できることを確認するために必要な状態をクリアします。
Stackoverflow を通じて、次の記事に出くわしました。私が書いたいくつかのコードについての考え方が変わったと言わざるを得ませんが、私の心はまだ賑やかです。
たとえば、次のコードを見てください。
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();
}
}
}
次のような aspx ページで使用されます。
Presenter = new MyPresenter(this);
if (!IsPostback)
{
presenter.PrepareView();
}
以前の記事を念頭に置いて、この種の種類をどのように変更すればよいですか? サービス インスタンスを PrepareView メソッドに渡す必要がありますか? しかし、私の ASPX ページは、サービスや工場などについて知り、使用後にサービスを破棄する必要があります。
Singleton ファクトリはどうすればよいですか? それをクラスのプロパティにして、Unity を介して注入しますか?