问题标签 [chutzpah]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1456 浏览

requirejs - 无法使用 chutzpah、typescript 和 requirejs 设置基本单元测试解决方案

出于某种原因,我所有(甚至是基本的)尝试使用 Chutzpah、TypeScript 和 RequireJS 设置单元测试都失败了。

我根据示例尝试了几种组合,但要么出现超时错误,要么出现文件未找到错误(对我来说没有任何意义,因为它是 Chutzpah 生成的文件)。我的猜测是它只是一些小东西(尽管可能不容易找到),所以也许有人知道我如何解决这个错误。

测试文件

输出

chutzpah.json

配置.js

显然,这已经是一个非常精简的版本,所以希望对于有更多 Chutzpah 经验的人来说,任何错误都应该很容易找到。


[补充]

将编译模式更改为外部后(感谢 Matthew Manela),路径看起来好一些,但还是有问题,我之前没有注意到,在我写这篇文章时另外用点替换,显示的路径缺少两个目录在它的中间。

“打开错误”行的路径稍有错误,缺少 \MySolutionName\Main,这解释了为什么找不到文件。chutzpah.json 位于 MyProjectName 下,因此即使是 TestHarnessLocationMode 等设置也不应该与此相关。

0 投票
2 回答
567 浏览

javascript - 使用 requireJs 在 Jasmine 中模拟匿名模块调用

当前单元测试设置:

  • 茉莉花2.1
  • 需要 2.1.15
  • Chutzpah 3.2.6

在我们的代码库中,我们有许多模块,它们通过 requireJs 加载以抽象出功能。例如,抽象出对服务器的调用的通信。然而,这些模块返回一个匿名函数:

然后通过 requireJs/AMD 加载由其他模块导入,并以下列方式使用:

我目前有一个模拟模块,它绕过 $.ajax 调用为单元测试导入并返回一个承诺,但是我真的想在我的单元测试中测试它是否已被调用并且正确的值已被传入等。我试过查看间谍,但是因为它没有在模块上公开命名函数,据我所知,我无法使用这种方法。

如何设置期望/模拟匿名 AMD 返回函数?

编辑

帮助清晰的用法示例:

我希望能够测试 submitForm 函数(出于问题目的而简化)并希望模拟通信器依赖项,而无需在测试项目 require.js 设置中定义存根的附加模块。

0 投票
1 回答
505 浏览

jasmine - 在服务器和 Visual Studio 中使用不同的项目运行 chutzpah

我有几个项目包含我的 javascript 源代码和一个项目包含我的 javascript 测试。现在我想知道如何在测试文件中设置我的引用以使它们在 Visual Studio 和服务器端的自动集成构建中工作。挑战在于两个位置的文件结构不同。

本地(Visual Studio)有通常的文件结构:

我在 library-test-js 中设置了一个参考,它看起来像这样并且在 VS 中工作正常:

在服务器端,所有内容都被复制到构建输出文件夹中,文件结构如下所示:

library-x-test.js 中的引用不再在那里工作。任何想法如何解决这个问题?

0 投票
1 回答
923 浏览

angularjs - Angular 单元测试在浏览器中有效,但在 Chutzpah 中出现错误

我有一个角度模块,它使用 angular ui bootstrap typeahead 指令。我正在尝试使用 qunit 和 chutzpah 对此进行单元测试。

单元测试在通过浏览器运行时运行并通过,但在使用 Chutzpah 运行时返回错误:

错误:错误:[$injector:modulerr] 无法实例化模块 myApp,原因是:错误:[$injector:nomod] 模块“myApp”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

为什么会出现这个错误?

JS

HTML

单元测试

Chutzpah 设置

0 投票
1 回答
502 浏览

angularjs - 使用 Chutzpah 在 Visual Studios 中逐步完成角度单元测试

我是角度单元测试和胆大妄为的新手。我已经设置好所有东西(角度库、茉莉花、sinon、角度模拟等)并运行,但我意识到在编写单元测试时使用 chutzpah 调试它们很痛苦,因为我无法附加调试器(或者至少我不知道如何)并逐步执行我的角度代码。有没有办法在不放弃 chutzpah 并使用 jasmine 在浏览器中运行单元测试的情况下实现这一点?

0 投票
1 回答
2199 浏览

visual-studio-2012 - Visual Studio 测试资源管理器未发现 jasmine 测试

我有通过 Chutzpah 上下文菜单扩展(运行 JS 测试)运行的茉莉花测试。但是测试资源管理器没有发现它们,当我右键单击并选择运行测试时,“测试”的输出给了我这个:

这也是我的 chutzpah.json 文件:

我搜索了互联网,找不到解决方案。

0 投票
1 回答
251 浏览

javascript - Angular 单元测试适用于测试页面,但 Chutzpah 中出现错误

我正在尝试学习如何使用 Chutzpah 和 Jasmine 在 Visual Studio 2012 中对 Angular 控制器、服务等执行单元测试。

从我创建的测试页面 (TestRunner.html) 执行时,我的所有测试都可以正常工作,但是当我尝试从 Chutzpah 执行它时,其中一个测试失败。

我收到的错误消息是:

测试'userData getUser:应该使用用户名调用getresource.get'失败TypeError:'undefined'不是错误中的对象(评估'currentSpec.queue.running'):[$injector:unpr]未知提供者:userResourceProvider <- userResource <- 用户数据

我在 GitHub 上创建了一个仓库 - https://github.com/bfout/Angular-Unit-Testing

0 投票
1 回答
450 浏览

javascript - 在加载其他脚本之前在 Jasmine 中加载外部脚本

我在我的项目中使用 TypeScript 来构建 JS 文件。我还使用 chutzpah 扩展到 Visual Studio 来运行我的测试。我遇到的问题是我有 3 个脚本需要加载,而我的测试 .ts 文件是最后一个。我遇到的问题是需要在加载所有其他脚本之前加载第一个脚本。第一个脚本也是外部脚本(不在我的项目中)。

我怎样才能先加载第一个脚本,然后再加载其他所有脚本。看起来应该完成一个异步调用 - 但我没有设法用它来解决它。

0 投票
2 回答
741 浏览

javascript - 每次测试都调用 beforeEach 而不是一次

我在使用beforeEach异步时遇到了一种情况,并且我的规范中有几个测试。我看到beforeEach每个测试都被调用,而不是在所有测试之前只运行一次 - 我做错了什么?这是我的代码:

});

如您所见,我正在使用 Typescript 和 Chutzpa

0 投票
1 回答
907 浏览

chutzpah - 使用 Chutzpah 在 Visual Studio 中运行代码覆盖时出错

尝试使用 Chutzpah 在 Visual Studio 中运行代码覆盖率,但出现以下错误。