0

mvc 3 ソリューションでデータ アクセス層とビジネス ロジックをテストする最良の方法は何ですか?

私は現在、リポジトリクラスを使用してデータベースにアクセスし、次に休止状態を使用するプロジェクトを持っています。自動生成された単体テストでそれらの単体テストを作成しようとすると、nhibernate の構成が web.config にあり、そこを調べようとしないため、常に失敗します。私は何を間違っていますか?この特定のメソッドはこのエラーを返します

"The Web request 'http://localhost:35601/' completed 
successfully without running the test"

テスト方法は次のようになります

    [TestMethod()]
    [HostType("ASP.NET")]
    [AspNetDevelopmentServerHost("C:\\Users\\...", "/")]
    [UrlToTest("http://localhost:35601/")]
    public void GetByIdTest()
    {
        string someid= "..";
        SomeObj actual = MyRepository.GetById(someid);
        Assert.AreEqual(some, SomeObj.id);
    }

これを正しく機能させるにはどうすればよいですか?

4

1 に答える 1

1

設定を app.config に入れると、上記の問題は解決するはずですが、より正しい答えは、モック フレームワークを使用して nHibernate セッションをモックすることです。

テストに対応するために変更する必要がある領域を見つけたという事実は素晴らしいです!!! これが単体テストの利点の 1 つです。コード内にリファクタリングが必要な結合が見つかりました。

Moq を使用して NHibernate ISession を直接 Mocking しようとしていることに対処する別の投稿を見つけました。投稿には、役立つ可能性のあるアプローチを提供する2つの回答があります。

これが役立つことを願っています。私は nHibernate を使用していないので、それについて正式に話すことはできず、上記のリンクから回答が得られるとは言えませんが、各回答には 10 の賛成票があり、堅実な投稿だったようです!

于 2012-05-20T16:27:17.087 に答える