2012-04-23 5 views
0

私はこのような方法があります:テストオブジェクトは

public void ABC(ViewModeL model) 
    { 
     var dataTable = new DataTable(); 
     dataTable.Columns.Add("column1", typeof(int)); 
     dataTable.Columns.Add("column2", typeof(int));      
     var dr = dataTable.NewRow(); 
     dr["column1"] = 2; 
     dr["column2"] = 0; 
    } 

私はDataTableオブジェクトに主張したいが、それは内部で作成されているので、私は、そうすることをどのように把握することはできませんよこのメソッドでは返されません。それはサイのモックを使用してそれをテストすることは可能ですか?

+0

外部のものとの接続がない場合、DataTableをアサートする理由は何ですか? –

+0

私はそれに材料を追加するので、私は彼らが正しい方法で追加されているかどうかを知りたいです。 –

+1

これは単体テストのポイントではありません。ユニットテストテスト** **どのように**機能** /オブジェクトが**どのようにそれを行う**ではありません。 – MattDavey

答えて

0

いいえ、これは、生存スペースがメソッド範囲であるABC()であるローカル変数です。したがって、thsiはC#の観点からは不可能であり、単位テストの観点からも間違っていても、実装の詳細を頼りにしてはいけません。

ABC()メソッドの実行後に変数dataTableが死ぬ可能性があるので、メソッド本体全体を提供していない可能性があります。なぜチェックする必要がありますか?

+0

私はメソッド内からdataTableオブジェクトを渡している別のメソッドを呼び出しています。 repository.InsertDataTable(dataTable); –

+0

このコードを表示してください – sll

+0

私は自分のコードをリファクタリングし、DataTableオブジェクトを返す保護されたメソッドを作成し、部分モックを生成することによってそれを無期限にテストしました。とにかくありがとう.. :-) –