问题标签 [ava]

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 投票
2 回答
630 浏览

node.js - 调试 ava 测试时,WebStorm 不会在断点处停止

我已经创建了一个 npm 配置来在 WebStorm(版本 2017.2)中按照这个ava 配方调试我的 ava 测试。当我点击调试按钮时,所有测试都在运行,但它似乎并没有在任何断点处停止。我还看到了这些:

这是我的 npm 调试配置: 在此处输入图像描述

这是 package.json 中的 ava 配置:

任何想法如何使这项工作?

0 投票
1 回答
904 浏览

javascript - sinon.getCall(0).args[0] 正在返回函数的结果,而不是第一个 arg

我正在使用 AVA 和 Sinon 测试一个小功能。函数看起来基本上是这样的(为简洁而编辑):

我编写了一个测试来确保将正确的参数传递到_.defaultsDeep。

我遇到的问题是日志 1 和日志 2 不一样。据我了解,

返回从第 n 次调用该函数时传递给被监视函数的第 m 个参数。但是,在这种情况下,日志 2 实际上是返回函数的结果,而不是第一个参数。

选项对象看起来像这样:

但是 console.logs 看起来像这样:

所以 spy.getCall(0).args[0] 又名“log 2”实际上返回了 _.defaultsDeep 运行后“opts”变成了什么。这感觉就像是 Sinon 库中的一个错误,但更有可能是我做错了什么。非常感谢您的帮助,在此先感谢!

0 投票
2 回答
582 浏览

ava - 使用ava的断言错误

首先我的英语不好,但这个测试对我来说失败了。

并返回这个

如果我删除该行

测试运行没有任何问题。

测试的功能是这个

该函数的作用是,如果它没有在数据库中获取用户,那么它会返回一个拒绝承诺并且它实际上会发生但之后我不知道会发生什么

0 投票
1 回答
565 浏览

try-catch - 为什么 Chai 断言没有运行而 ava 运行?

我正处于测试 Slack 机器人句柄的红色阶段,所以我预计会出现错误。

我有以下代码:

我写了以下测试:

预期行为

如果我用expect()本机替换断言ava

它抛出了我期待的错误:

实际行为

我收到以下错误:

使用assert给出相同的行为

问题

chai假设断言在我的try…catch子句中被捕获而来自的不是,这是否正确ava

0 投票
2 回答
1561 浏览

angular - 如何使用 Ava 与 Angular/CLI 构建 typescript 项目

作为我正在构建的项目的一部分,我目前有一个我创建的 angular/cli 打字稿项目。我们目前正在使用业力测试框架,但如果可能的话,我们对切换到 AVA 非常感兴趣。

我目前已经完成了npm install --save-dev ava 并且我查看了 ava 文档中的打字稿设置 https://github.com/avajs/ava/blob/master/docs/recipes/typescript.md

我还按照主页本身的设置,并在我的 package.json 中添加了一个“ava”部分

我希望在默认情况下,这会以某种方式获取我们当前编写spec.ts的为业力量身定制和编写的文件,但似乎并非如此,因为我只是给出了

我还尝试删除 Karma 当前放置的默认 test.ts 文件并将其更改为

希望我至少可以引导一些可以使用的东西,我以后可以用它来添加/实现我们其余的测试文件。到目前为止,我也没有运气。

之前走这条路的人可以告诉我需要做什么才能让 Ava 测试亚军运行并正常工作吗?此外,为了使我们目前现有的基于 karma/jasmine 的测试框架适应 Ava,可能需要做些什么?

非常感谢您!

0 投票
0 回答
857 浏览

testing - 如何将 sinon.stub 与 ava 一起使用?

任何建议如何使用Sinonwith ava?当我跑步时avastub.called总是false

目标.js

目标.test.js

0 投票
1 回答
745 浏览

babeljs - 测试通过,覆盖率未显示

我正在努力让所有人都相处nyc ava融洽。babel我遇到了一个问题,其中 async / await 分支显示为未涵盖,所以这是有效的,我在集成babel-plugin-istanbul插件以进行测试时遇到了麻烦。

我在项目中有两个文件,src/index.js并且src/test.js.

这是正在运行的:

为什么没有src/index.js出现在报道中?

0 投票
1 回答
259 浏览

javascript - Vuejs 测试 - Ava - 更改 propData

我试图更改传递给组件的 propData 以监视和检查组件。

我希望此代码块中的最后一个控制台日志为 5,但仍为 2。

0 投票
1 回答
453 浏览

javascript - 使用 AVA 进行动态测试

我希望以编程方式运行 ava,因此我的脚本将能够使用动态参数(实际上是一个 URL)运行一些 ava 测试。

我的目标是在动态(来自用户输入)URL 列表上以编程方式运行相同的 ava 测试文件,然后取回输出。

我知道ava api是一个很好的起点,但是我可以看到官方的gulp-ava不使用这个 API,而且 API 的使用对我来说不是很清楚。

所以,TL;DR:

  • 如何从我自己的 nodejs 脚本运行 ava 测试文件?
  • 如何从我的脚本将动态参数传递给 ava 测试文件?
  • 如何从 AVA 取回输出?

谢谢,

汤姆

0 投票
1 回答
203 浏览

javascript - 在 Ava 测试中使用 RxJS 延迟运算符

我是需要针对许多测试执行的 JavaScript 程序的作者。我发现这些测试中的每一个都遵循类似的格式,因此使用工厂函数生成测试是合适的。

工厂函数称为 testFactory,如下面的代码所示。它使用一个数据数组调用,一旦添加了我的应用程序逻辑,它将指示工厂如何构建特定的测试。工厂函数也负责执行测试。

如果传递给工厂的数据中包含“延迟”字符串,我选择 RxJS 是为了实现两秒的延迟。(我之前的实现尝试使用了 Promise,但我未能让这种方法发挥作用。)如您所见,这是通过使用 Rx 延迟运算符完成的。

选择 Ava 是因为它在与 RxJS 合作方面享有盛誉。如您所见,我正在通过订阅我的 observable 调用 Rx 主题。

在我的实际应用程序代码中,此订阅调用实现我的应用程序逻辑的状态机,并且来自状态机的数据通过在状态机上的回调方法中调用主题的下一个方法被馈送到主题。这就是为什么我不能简单地将我的 observable 直接插入 Ava 测试方法,而是必须通过一个主题。选择了一个主题而不是可观察对象,因为主题允许从其定义之外调用其下一个和完整的方法。

我已经从下面的代码中删除了我的应用程序逻辑,以免将问题与这些细节混淆。当从数据数组中删除“延迟”字符串时,问题就出现了。当此代码使用不包含延迟的数据运行时,测试不会通过:

它失败了:Test finished without running any assertions.

当数据数组中没有“延迟”时,如何通过?当数据数组中没有“延迟”时,为什么会失败?谢谢你。

注意:有趣的是,当 Ava 的导入以及下面导入 Ava 的测试函数的行被删除时,对测试函数的调用被替换为对主题的常规 RxJS 订阅,代码在有和没有 'delay 的情况下都有效' 数据结构中的字符串:

这是否表明问题出在我对 Ava 的使用上?