2012-01-12 7 views
0

私はWPFで簡単なGUIを作成しました。データベースから得られたデータをいくつか表示したいと思います。しかし、今のところ私はGUIと受信データの簡単な計算を行う関数はほとんどありません。私は私の目標がいくつかの "偽の"データを生成する疑似オブジェクトを作成することを知っていますが、私はどのように起動するのか分かりません。それらのうちの1つを作成する方法を教えてください。他の部分と同様に作成することができます。計算を行うクラスは次のとおりです。モックオブジェクトの作成

 public Statistic showUsersPostCount(Options options) 
    { 
     Query q = (Query)this.client.DoQuery(); 
     q.AddAuthor(options.Login); 
     q.SetSinceDate(options.DateFrom); 
     q.SetUntilDate(options.DateTo); 
     q.AddTitleWord(options.Discussion); 
     List<Entity> list = (List<Entity>)q.PerformQuery(); 

     Statistic statistic = new Statistic(); 

     statistic.UsersPostCount = list.Count; 
     return statistic; 
    } 

この関数は単純な統計を返します。しかし、私はクラスクエリのコードがありません。どのように私はこのクラスのオブジェクトを模擬することができますか?

答えて

0

コードを提供しています...それを模擬するために、依存関係の代替オブジェクト(この場合は.clientオブジェクト)を提供する何らかの方法が必要ではありません。

これはそのままですが、そのメソッドには1つの入力 'options'しかありませんが、そのコードには比較的影響がありません。

さらに、クラスの例を示していると主張していますが、そうではありません。あなたはshowUsersPostCountという名前のメソッドしか表示していません。

0

あなたのコードがあなたが模擬したいクラス内のメソッドであると仮定すると、あなたがまだ実装していなければ、そのクラスのためのインターフェイスを作成することになります。

あなたは具体的なクラスではなくインターフェイスを模擬フレームワークに渡すことができます(私はMoqを使用しましたが、nmockは非常によく似ています)。次に、プロパティ/メソッドがモックフレームワークを介して返すモックデータを入力することができます。

0

他の人が触れたように、あなたのコードは、少なくとも標準的なモッキングツールでは、あたかもあざけるものではありません。 Molesがあります。「モック・ザ・モンカブル」を可能にすることに自信を持っています。モルズはあなたがその方法をそのまま模倣できるようにします。

つまり、内部的に制御しているものを模倣するためにMolesに頼らざるを得ないのであれば(おそらく、データベースやファイルなどの外部依存関係を模倣するために設計されている)テスト可能な(モールなしのテスト可能な)デザインは、全体として良いデザインになる可能性が高くなります。

関連する問題