代码之家  ›  专栏  ›  技术社区  ›  rip747

如何在cfwheels中对重定向进行单元测试

  •  4
  • rip747  · 技术社区  · 15 年前

    更新:我想出了如何测试这个。似乎我们必须重写一点wheels控制器的内部结构,以便在操作完成并传递回调度程序后执行重定向。这种方法唯一的一点是,在redirectTo()之后的任何代码都将被运行,除非您事先采取了适当的预防措施;这包括在redirectTo()语句之后放置一个返回,或者在操作中放置条件检查,以将redirectTo()代码与其他代码隔离。它还包括确保在执行redirectTo()后不会呈现任何其他内容。

    2 回复  |  直到 15 年前
        1
  •  3
  •   marc esher    15 年前

    如果将重定向机制分解为多个函数,那么这样的东西就更容易测试:a)确定目标URL的函数和b)执行重定向的函数。

    这样,您就可以非常轻松地测试functionA,而functionA正是您想要测试的。这是密码 写的。这才是你真正的逻辑所在。FunctionB不是您的代码;这是ColdFusion的胆量,测试CFD位置没有多大意义。

    您可以将此方法推广到其他场景:文件系统、Web服务、http、ftp、电子邮件等:“从无法控制和不想测试的内容中提取您可以控制和想要测试的内容”

        2
  •  2
  •   Terry Ryan    15 年前

    您可以使用重定向设置为false的cfhttp调用具有适当URL的控制器。然后测试生成的cfhttpresult结构,它应该有重定向将带您去哪里的信息。

    推荐文章