【问题标题】:How to make a SPA testable outside of the browser?如何使 SPA 在浏览器之外可测试?
【发布时间】:2014-08-11 17:39:14
【问题描述】:

我有一个 SPA,它从服务器中提取配置数据并生成用户可以继续填写的表单。

我希望能够让这个 SPA 在浏览器之外进行测试,这意味着视图及其实现没有被测试。

目前一个表单的结构是这样的:

form
    page 1
        firstName
        lastName
    page 2
        email

有一个表单模型,它保存表单的数据及其配置,然后有一个控制器和一个视图。控制器将模型中的数据直接附加到视图中,并根据事件操作视图。该视图还具有用于创建和控制某些方面的逻辑,例如内联滚动条 (iScroll)。

正如您可能看到的,这使得没有浏览器就无法测试代码,因为代码与视图的耦合非常紧密。

我认为解决问题的方法是拥有一个控制器、一个控制器模型、一个视图,然后是一个将它们连接在一起的具体类,同时为控制器提供表单配置。但这引发了一些问题,具体来说,我需要一个工厂来为表单、页面和字段创建一个控制器,然后是在视图和控制器之间创建具体绑定器的东西,然后是连接它们的东西以正确的方式在一起。

我觉得必须有更好的方法来做到这一点。

任何指导将不胜感激。

【问题讨论】:

    标签: javascript unit-testing


    【解决方案1】:

    我认为你需要的是 AngularJS。有一个模板可以用 git 克隆。它具有开箱即用的可测试能力。我认为没有必要重新发明轮子,因为已经有一个众所周知的框架具有此功能。

    【讨论】:

    • 我研究了 AngularJS,发现它在处理具有大量数据的大型应用程序时非常臃肿且缓慢。对于 AngularJS,首先想到的是它通过定义函数 def 来使用需要模块。与参数中的模块。我知道这需要将函数转换为字符串并检查文本以查看您需要的模块。对于如此简单的事情来说,这就是过多的逻辑。
    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多