0

ユニットテストの書き方を学ぼうとしています。リポジトリ パターンに従って、コントローラー用のリポジトリを作成しました。本物の dbcontext と偽の dbcontext の両方がサポートされているので、テストを書き始める準備ができました。私の問題は、何をテストすればよいかわからないことです。

  1. その仕事のほとんどがデータをリポジトリに渡し、結果をビューに渡すことである場合、コントローラーをテストする必要がありますか?
  2. 私のリポジトリには、以下のようなメソッドがあります。それらは非常に簡単ですが、テストする必要がありますか?
  3. 検証条件をテストする必要がありますか?
  4. 最も大切なもの。asp mvc の単体テストの例を教えてください。[method]ShouldDo[whatever] のようなステートメントのリストが役立つと思います。しかし、それほど明白ではないものをすぐに思いつくのは難しいのではないかと思います. テスト ファイル/プロジェクトの 1 つを喜んで共有したり、検討する価値のあるオープン ソース プロジェクトを推奨したりしてくれる人がいるかもしれません。

            public virtual void Update(T entity) 
            {
                Db.Attach(entity);
                Db.SaveChanges();
            }
    
            public virtual void Save(T entity)
            {
                Db.Add(entity);
                Db.SaveChanges();
            }
    
            public virtual void Remove(T entity)
            {
                Db.Delete(entity);
                Db.SaveChanges();
            }
    
4

2 に答える 2

1

残念ながら、このトピックは広すぎるため、ここで簡単な答えを出すことはできません。グーグルはあなたの友達です。「c# の単体テストの記述」をググると、200 万件以上の応答がありました。単体テストをいつ、どのように作成するかについては、多くの競合する哲学があります。Google から始めて、いくつかのアプローチを読み、自分の好み、コーディング スタイル、および解決しようとしている特定の問題に基づいて、どれが最適かを判断することをお勧めします。

于 2012-09-10T01:31:22.447 に答える
1
  1. その仕事のほとんどがデータをリポジトリに渡し、結果をビューに渡すことである場合、コントローラーをテストする必要がありますか?

定義ごとのコントローラーは、モデルとビューの間のアダプターのみにする必要があります。したがって、情報を処理 (つまり、ビジネス ルール) すべきではありません。

あなたのコントローラーはそうではないように聞こえますが、それはすべて良いことです。ビュー モデルを使用している場合、問題が発生する可能性があるのは 1 つだけです。それは、ModelState を適切に処理していないことです (つまり、問題があれば報告します)。

したがって、それをテストしたい場合は、先に進んでください。

私のリポジトリには、以下のようなメソッドがあります。それらは非常に簡単ですが、テストする必要がありますか?

いいえ。受信データが正しいことを検証していないためです。テストは単なる統合テストであり、単体テストではありません。

検証条件をテストする必要がありますか?

検証する必要があるものを検証することを確認したい場合。

最も大切なもの。asp mvc の単体テストの例を教えてください。[method]ShouldDo[whatever] のようなステートメントのリストが役立つと思います。しかし、それほど明白ではないものをすぐに思いつくのは難しいのではないかと思います. テスト ファイル/プロジェクトの 1 つを喜んで共有したり、検討する価値のあるオープン ソース プロジェクトを推奨したりしてくれる人がいるかもしれません。

何をテストしたいかによります。

于 2012-09-10T08:25:06.360 に答える