0

私は、注射とテストも本当に初めてです。

テストの作成を開始したいmvc4アプリケーションがあります。(はい、私は行くにつれてそれらを書くことを意図していることを知っています:))

私のNinjectWebCommon内

  private static IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

        RegisterServices(kernel);
        return kernel;
    }

    private static void RegisterServices(IKernel kernel)
    {
        kernel.Bind<IConsumerRepository>().To<ConsumerRepository>();
    }

私は自分のアプリケーション内のリポジトリにすべてを書きました。たとえば、

public interface IConsumerRepository
{
    ConsumerModel GetConsumerByUserId(Guid userId);
}
public ConsumerModel GetConsumerByUserId(Guid userId)
    {
        if (HttpContext.Current.Session["ConsumerInfo"] == null)
        {
            var data = RestSharperHelper.GetById<ConsumerModel>("id", userId, ApiEndPointConstants.GetConsumerById);
            LogMessage(data.UserName);
            HttpContext.Current.Session["ConsumerInfo"] = data;
            return data;
        }
        else
        {
            return (ConsumerModel)HttpContext.Current.Session["ConsumerInfo"];
        }
    }

ConsumerModelがWebアプリケーションリポジトリから返されることを確認するためのテストを作成するための最良の方法は何ですか?毎回上記のようなAPIを呼び出すのではなく、より複雑なテストを記述して模擬のConsumerModelを提供したいので、柔軟に対応したいと考えています。

提案ありがとうございます!

4

1 に答える 1

0

MVCContrib TestHelperが役立つ場合があります。これは、コントローラー アクションの単体テストに役立ち、 および のようなすべてのパーツを初期化しHttpContextますSession

http://mvccontrib.codeplex.com/wikipage?title=TestHelper

于 2012-10-15T08:11:25.700 に答える