zoukankan      html  css  js  c++  java
  • 如何使ASP.NET MVC Controller易测试呢?

    昨天那篇文章如何进行ASP.NET MVC 的测试,虽然通过自己写一个Fake的HttpContext,但是同时也暴露出之所以难于测试,是因为设计的代码不易测试,根据Jeffrey Zhao(老赵)的建议(我没完全看懂如何去做),我又重新试了一下,我把对httpcontext的操作全部放到一个ModelBinder里,因为那里可以处理httpcontext,而测试的时候是不执行ModelBinder

    下面是实验的代码

    Product类

    image

    ProductBinder

    image

    HomeController

    image

    记得在global.asax里注册

    image

    测试代码

    image

    很明显,测试是通过的,因为此时Action没有用到任何httpcontext的内容,处理的只是传进去的Product对象。

    现在我的问题如下:

    1. 很明显About的Action是通不过测试的,这里我只是使用了一个session值,难道我也需要新建一个ModerBinder,和一个类吗?这样凡是出现调用httpcontext都的新建一个Binder那Binder是不是太多了,ModelBinder是不是主要处理Form?

    2. 如果不用ModelBinder怎么样即可以使用session又易测呢?

    3. 虽然Action好测了,但ProductBinder如何测?

    注:本文没有技术含量,为何放在首页?因为我没有搜索到相关的内容,而园子里很多人肯定有更好的方案,但是他们的时间可能很紧,我想他们能在评论里给点好的思路,文章+评论=一篇好文, 我这里就是想抛砖引玉,把他们的经验为大家引出来。

  • 相关阅读:
    Rust资料
    CMake & Ninja
    @Configurable
    Hibernate startup -> 配置SessionFactory实例
    Vue 渲染函数
    Spring 5 新特性
    @Configuration 注解的用途
    AOP
    AnnotationConfigApplicationContext.() -> Unit
    C编译优化
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1369904.html
Copyright © 2011-2022 走看看