将 Angular-Seed Jasmine 单元测试转换为 CoffeeScript

2024-01-04

作为练习,我正在尝试转换包含在angular-seed从 js 回购到咖啡脚本。特别是,我遇到了问题tests/unit/directivesSpec.js测试集,定义了一个简单的价值服务。这是我的咖啡脚本代码:

 1  describe 'directives', ->
 2  beforeEach module 'myApp.directives'
 3  
 4  describe 'app-version', ->
 5    it 'should print current version', ->
 6      module ($provide) ->
 7        $provide.value 'version', 'TEST_VER'
 8      inject ($compile, $rootScope) ->
 9        element = $compile('<span app-version></span>')($rootScope)
10        expect(element.text()).toEqual 'TEST_VER'

咖啡脚本代码围绕行编译时似乎有问题6因为这变成:

module(function($provide) {
  return $provide.value('version', 'TEST_VER');
});

并导致我的测试失败并出现错误:

Error: [ng:areq] Argument 'fn' is not a function, got Object
http://errors.angularjs.org/1.2.4/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20Object
    at /Data/src/ngfrontend-seed/app/vendor/angular/angular.js:78:12
    at assertArg (/Data/src/ngfrontend-seed/app/vendor/angular/angular.js:1358:11)
    at assertArgFn (/Data/src/ngfrontend-seed/app/vendor/angular/angular.js:1368:3)

如果我删除return声明,测试运行良好。参考文档中的示例 http://docs.angularjs.org/api/angular.mock.inject,目前还不清楚模块函数接受什么作为返回值,但是return声明似乎打破了事情。

关于如何解决这个问题的任何想法,或者在编写测试规范时坚持使用纯 JavaScript 是否明智?


Coffeescript 隐式返回每个函数的最后一个表达式。
但是您可以添加一个显式的空返回语句,如下所示:

6      module ($provide) ->
7        $provide.value 'version', 'TEST_VER'
8        return

它将编译为:

module(function($provide) {
  $provide.value('version', 'TEST_VER'); //without return
});

另请参阅此thread https://stackoverflow.com/questions/7391493/is-there-any-way-to-not-return-something-using-coffeescript了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Angular-Seed Jasmine 单元测试转换为 CoffeeScript 的相关文章

  • 为什么我无法将 $location 注入到我的 config() 中?

    为什么这会给我一个错误 angular module app config function routeProvider locationProvider httpProvider location 未捕获的错误 未知的提供商 来自应用程序
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • AngularJS中$scope和scope的区别

    我是 AngularJS 的新手 我想知道有什么区别 scope在 angularjs 控制器中和scope在 angularjs 指令中 我尝试在控制器中使用范围 但出现以下错误 错误 injector unpr 未知提供程序 scope
  • Sonar 中的 javascript 代码覆盖率

    我是使用 Sonar 和插件进行 javascript 代码覆盖的新手 使用 Sonar 分析时 有哪些可能性可以找出 javascript 代码的质量 包括代码覆盖率 目前我正在使用 karma runner 它提供代码覆盖率报告 可以在
  • Angular Material 日期选择器选择的默认日期

    这对我的日期选择器有帮助 http demo agektmr com datalist 现在在这个date picker我想要默认选择今天的日期 谁能帮我如何设置默认日期 谢谢 在我用过的有角材料中this http demo agektm
  • 如何处理并不总是返回承诺的函数?

    处理函数并不总是返回 Promise 的情况的最佳方法是什么 我的实际代码太复杂 无法解释 但问题的本质归结为检查条件 根据它 我要么返回一个局部变量 要么需要发送一个 ajax 请求 像这样的事情 function example val
  • 如何在 AngularJS 中设置和使用 $anchorScroll 的 yOffset 属性

    我用 anchorScroll AngularJS 中的服务 效果很好 但我在顶部有一个固定的导航栏 滚动位置总是 x 像素远 现在在 anchorScroll文档 https docs angularjs org api ng servi
  • Angular-Chart.js 它不显示图表

    我正在尝试使用 Angular chart js 它没有为我显示任何内容 这是我的 javascript 和 html 页面 function angular module app chart js controller BarCtrl f
  • 如何获取 ng-repeat 中的前一项?

    我有一个模板 仅当当前项目与前一个项目有一些不同的字段时 我才想生成一些 HTML 如何访问 ng repeat 中的前一项 你可以做类似的事情 div ul li div class title index content title c
  • 使用谷歌分析处理带有哈希#的网址

    我正在使用 javascript 客户端 mvc 开发一个 js 单页 Web 应用程序 在本例中为 angular js 我在网站上添加了谷歌分析 但从目前我所看到的 至少是实时的 来看 谷歌没有考虑哈希后的 uri 部分 那就是我有一个
  • 如何在 AngularJS 中刷新/使 $resource 缓存失效

    我有一个简单的 User resource 它使用默认的 http 缓存实现 如下所示 factory User function resource return resource endpoint user current project
  • 使用 Angular 将焦点捕获在 html 容器中

    我正在构建一个可访问的网站并尝试管理焦点 我需要打开一个模式 然后将焦点放在模式中的第一个元素上 然后捕获焦点 直到模式关闭 取消 或 接受 HTML a href Open Modal a div h3 Terms of Service
  • 在 config() 模块中注入依赖项 - AngularJS

    目前在 app js 中我有以下路线 var gm angular module gm gm services gm directives gm filters gm controllers ngSanitize gm config rou
  • 如何使角度表单只读并可使用编辑按钮进行编辑?

    有没有办法让整个 Angular 表单只读 然后在单击编辑时可编辑 您可以按照当前答案 评论中的建议单独禁用所有表单元素 也可以将所有表单元素包装在 fieldset 更多信息 https developer mozilla org en
  • Protractor:是否可以测试我的应用程序中没有404?

    我是量角器的新手 我想编写一个测试来查看是否存在带有 url 的锚点给出 404 错误 我见过这个如何用量角器测试html链接 https stackoverflow com questions 29212375 how to test h
  • 在 angularJS 中覆盖模块值/常量的最佳方法

    我用 angularJS 编写了一个模块 封装了所有后端通信 为了获得更大的灵活性 我将 api 前缀作为模块上的常量值 可能是值 因为我没有在配置阶段使用它 所以像 angular module myapp data constant a
  • Jasmine 测试中的模板解析错误,但实际应用程序中没有错误

    我开发了 Jasmine 规范来测试 Angular 2 组件MiddleRowComponent 当我运行 jasmine 测试时 出现以下错误 zone js 388 Unhandled Promise rejection Templa
  • Angular UI-Router:多个 URL 到单一状态

    我已经开始使用 Angular 的 ui router 并且我正在尝试弄清楚如何让多个 URL 引用单个状态 例如 orgs 12354 overview retyrns the same pages as org overview 我的
  • 量角器按钮单击并在新选项卡中打开页面

    我对量角器相当陌生 我正在尝试自动化一个场景 其中我单击一个按钮 它会在新选项卡中打开一个页面 然后我们需要在新页面中填充表单并提交 Issue 当我单击按钮打开新页面时 我的测试不会等待新页面加载并显示测试完成和成功消息 我正在使用该按钮
  • Typescript 中的 Angular 服务具有依赖注入和缩小功能

    我现在正在努力让我的头脑围绕 Angularjs 我目前正在寻找服务 我也使用打字稿来编写代码 现在 从网络上的示例中 我看到人们在打字稿中使用如下所示的服务 class Service constructor private http n

随机推荐

  • 点在函数中获取“脚本”

    我的 PowerShell 配置文件变得有点麻烦 我发现我并不总是使用其中的所有内容 我想减小我的个人资料的大小并加快启动时间 但我仍然希望能够访问这些功能相对地当我需要它们时很快 有没有办法 点源 https en wikipedia o
  • Cuda char* 变量赋值

    这是本文所选答案的后续问题 cuda程序的输出不是预期的 https stackoverflow com questions 6561005 output of cuda program is not what was expected 6
  • 清除 HTML 画布中形状下的像素

    我正在使用 HTML 画布和 javascript 并且需要清除通过关闭路径创建的形状下方的所有像素 例如 我正在使用flot http code google com p flot 并且我想制作圆角 为此 我首先需要通过在角的顶部绘制一条
  • Maven 创建一个空文件夹而不是获取适当的 .jar

    Maven 创建一个空文件夹而不是获取适当的 jar 我有一个由 3 个模块组成的项目 其中一个模块是其他两个模块的公共部分 当两个模块生成 WAR 文件时 第三个模块必须生成一个 JAR 该 JAR 应该嵌入到其他两个 WEB INF l
  • Magento CMS 错误:前端控制器达到 100 次路由器匹配迭代

    当我通过 CMS 在管理中 创建页面时 一切看起来都很好 但是当我尝试访问前端中的页面时 我得到一个带有错误的空白页面 Front controller reached 100 router match iterations 0 app c
  • NoSQL 的用例[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 NoSQL 最近在我们行业受到了广泛的关注 我真的很感兴趣人们对它在关系数据库存储上的最佳用例的看法 什么会促使开发人员认为特定数据集更适合 N
  • 在 Git 中的根提交之前插入非空提交?

    我有一个问题 请各位好心人指教 我有一个现有的 git 存储库 并且由于各种原因 我不会在这里讨论 我正在尝试创建一个 ROOT 提交 假设这是我的 git 提交历史记录 ROOT C1 lt C2 lt C3 lt C4 lt C5 lt
  • jQuery:如何制作一个清晰的按钮?

    我有一个搜索字段 我需要一个清晰的按钮 我目前有按钮 但我不知道该怎么做 我有 6 个文本字段 2 个组合框和 2 个多选列表 如何在一个清除函数中清除所有这些 我知道 HTML 方式 但我使用 Grails 并且 type reset 不
  • 如何使用 Chart.js 更改 Barchart 中仅一列的颜色

    js http www chartjs org docs bar chart http www chartjs org docs bar chart 我正在使用基本示例 HTML
  • 是否可以在单手柄 jQuery UI 滑块上设置固定的静态范围?

    本质上我要做的是一个用于一堆日期的单句柄 jQuery UI 滑块 选择的日期范围始终为两周 我想做的只是显示从两周范围的开始日期 即句柄驻留的日期 开始的一个范围 该范围不必是功能性的 只是显示 向前两周 这个范围是固定的 例如 如果句柄
  • 从 Eclipse 远程部署 Tomcat Web 应用程序

    出于开发和测试目的 我想将我的 web 应用程序从 eclipse 部署到远程 tomcat 服务器 这可能吗 如果没有 我应该如何设置我的开发环境以实现顺利 轻松的远程部署 如果您可以远程访问 Tomcat 管理器应用程序 那么您可以使用
  • 让用户选择他希望程序使用多少个线程

    我想让一个程序读取 txt 文件的每一行 并对每一行执行一些操作 我希望用户能够选择线程 因此如果他选择 10 个线程 那么程序将能够同时在 10 行上执行某些操作 假设文本文件包含 1 000 000 行 我该怎么办 这就是我实际上所拥有
  • 如何确定 connectNative 是失败还是成功

    我已成功将我的扩展连接到我们的本机主机 var pulse tracker port chrome runtime connectNative com cloudfactory pulsetracker 但我如何知道连接是否成功呢 无论连接
  • Xcode 5“缺少编译器规范 LLVM 4.2”错误

    我目前正在尝试在 Xcode 5 中构建我的项目 构建失败并出现错误 依赖性分析错误 missing compiler specification
  • 抽象工厂设计模式

    我正在为我的公司开发一个内部项目 该项目的一部分是能够将 XML 文件中的各种 任务 解析为稍后运行的任务集合 由于每种类型的任务都有许多不同的关联字段 因此我决定最好用单独的类来表示每种类型的任务 为此 我构造了一个抽象基类 public
  • 输入上的 v-model 通过其他脚本动态更改值?

    我有两个输入 用于存储来自谷歌地图脚本的纬度和经度 如果用户更改标记的位置 gt 这两个输入将获取用户所啄的纬度和经度 所以我想获取这两个输入的值 我尝试了 v model 但它不起作用我实际上注意到 只有当我通过键入或粘贴某些内容来更改这
  • CMD.EXE 批处理脚本显示 txt 文件中的最后 10 行

    有什么想法如何回显或输入 txt 文件的最后 10 行吗 我正在运行服务器更改日志脚本来提示管理员说明他们正在做什么 以便我们可以跟踪更改 我试图让脚本显示最近 10 个条目左右 以了解最近发生的情况 我找到了一个处理最后一行的脚本 如下所
  • Android 从gridview布局索引转换成行和列

    如果我有从 0 开始的网格上位置的索引 如何将其转换为行 列 我得到以下错误结果 幸运的是 我知道我有多少行和列 在我的例子中是 11 x 11 int column position columns int row position co
  • 每个服务端点的 HttpClient 实例化

    实例化 HttpClient 时 一个常见的建议是 使用单例 每次使用后不要丢弃 https stackoverflow com questions 22560971 what is the overhead of creating a n
  • 将 Angular-Seed Jasmine 单元测试转换为 CoffeeScript

    作为练习 我正在尝试转换包含在angular seed从 js 回购到咖啡脚本 特别是 我遇到了问题tests unit directivesSpec js测试集 定义了一个简单的价值服务 这是我的咖啡脚本代码 1 describe dir