0

WCSF は、Web サイトのソース コードを整理/構造化するために Model View Presenter (MVP) パターンを使用します。MVP パターンを正しく使用すると、関心の分離、プレゼンター ロジックの単体テスト容易性などが提供されます。

プレゼンター ロジックの単体テスト可能性を実現するために、WCSF と CSLA フレームワークをうまく機能させる (連携させる) 方法。プレゼンター ロジックの単体テスト可能性を実現するには、すべてのデータ アクセスとその他の依存関係をモックまたはスタブ化する必要があります。

4

1 に答える 1

0

CSLA オブジェクト内でデータ ポータル メソッドを実行する場合、それらのデータ ポータル メソッドのコンテンツはデータ サービスを呼び出して、そのデータを取得および更新する必要があります。これらの Web サービスは、モックアウトできるようにインターフェイス ベースにする必要があります。

従業員オブジェクトを設定する例を次に示します。

private void DataPortal_Fetch(SingleCriteria<Employee, int> criteria)
{
  IEmployeeDTO data = DataServiceContext.Current.EmployeeDataService.GetEmployee(criteria.Value);
  // Just do left to right copying here
  LoadProperty<int>(IdProperty, data.Id);
}

次に、EmployeeDataService は単なるインターフェイスです。Ninject を使用して、使用するデータ アクセス テクノロジの別のアセンブリを指すインターフェイスの concreate クラスを作成します。その後、テスト クラスに別の具象クラスを指定できます。

データ サービス インターフェイスの例を次に示します。

public interface IEmployeeDataService
{
  IEmployeeDTO GetEmployee(int id);
}

Linq 2 SQL を使用するためのデータ サービス concreate クラスの例を次に示します。

namespace XXX.DataServices.Linq
{
  public class EmployeeDataService : IEmployeeDataService
  {
    public IEmployeeDTO GetEmployee(int id)
    {
      // use Linq to SQL to get the data and transform that class into IEmployeeDTO
    }
  }
}

テストに使用するデータ サービスの例を次に示します。

namespace XXX.DataServices.Testing
{
  public class IEmployeeDTO GetEmployee(int id)
  {
    // mock up several IEmployeeDTO objects with known data
  }
}
于 2010-09-26T14:31:22.913 に答える