问题标签 [vows]

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 回答
2974 浏览

http - 使用 Node.js 中的 http.get 库对 vows 进行异步测试

我有一段时间试图让一个基本的 http 测试与 vows 一起工作。

我想我已经遵循了 vows http://vowsjs.org/#-writing-asynchronous-tests中的异步示例并替换了适当的调用,但我必须遗漏一些东西。

测试代码如下所示:

当我尝试为此运行测试时出现以下错误:

我可以得到一个简单的 http 示例来独立工作。我可以让誓言示例自行工作,但无论出于何种原因,我都无法将它们结合起来。我真的很感激这里的一些帮助。我一直试图让它工作一段时间(包括很多谷歌搜索)。

更新:

显然,感谢 Alexis Sellier(誓言的创建者)的帮助,在回调中添加错误参数解决了这个问题。

但我不知道为什么。当自己写出 http lib 示例时,不需要错误参数。我在誓言中找不到任何文件来说明为什么需要它,所以我有点茫然。

我的新问题是为什么在 vows 中使用 http lib 时需要错误参数?

0 投票
1 回答
1431 浏览

javascript - 使用 vows、tobi 和 node.js 进行 REST API 测试

我正在尝试结合此处的示例,在这里为我的 node.js / express 应用程序编写一个誓言测试:

  1. 创建一个新的用户对象
  2. 检查响应是否正常
  3. 使用返回的 _id 来测试查找新创建的用户
  4. 再次使用 _id 来测试更新用户

第 1 项和第 2 项工作正常,但我的子上下文 'GET /users/:id' 有问题。它出错了,我不知道为什么。尝试谷歌搜索并使用调试器,但我仍然看不到它是什么,我可能只是忽略了一些明显的东西。

谁能告诉我为什么第四个誓言错误?

这是我的誓言代码:

编辑

我尝试将代码简化如下,以帮助查看 this.callback 是否是问题所在,但错误仍然存​​在:

0 投票
3 回答
1594 浏览

node.js - 如何使用 vows.js 运行清理?

我正在使用 Vows.js 来测试一些在数据库中创建记录的 node.js。因此,它会在数据库中创建一些测试记录。测试运行后,我想删除这些记录。在 Vows 中运行一批测试时,有没有办法运行清理功能?

0 投票
1 回答
991 浏览

testing - 从 vows 启动服务器进行测试的正确方法是什么?

我有一个快递服务器,我正在使用 vows 进行测试。我想从 vows 测试套件中运行服务器,这样我就不需要让它在后台运行以使测试套件工作,然后我可以创建一个运行服务器并测试它的蛋糕任务隔离。

server.coffee我创建(快速)服务器,配置它,设置路由并调用 app.listen(port) 时,如下所示:

在我的简单routes-test.js我有:

respondsWith(code)功能上与誓言文档中的功能相似...

当我require在上面的测试中服务器时,它会自动开始运行服务器并且测试运行并通过,这很好,但我不觉得我这样做是“正确”的方式。

我对服务器何时启动没有太多控制权,如果我想将服务器配置为指向“测试”环境而不是默认环境,或者在我测试时更改默认日志记录级别,会发生什么?

PS 我要将我的誓言转换为 Coffeescript,但现在它全部在 js 中,因为我正处于从文档中学习的模式!

0 投票
3 回答
6144 浏览

testing - Node.js 测试 RESTful API (vows.js?)

在测试我在 node.js 中创建的 RESTful api 时,我真的可以提供一些建议。那里有太多的框架,我不知所措。我的测试知识通常不够好,这就是我尝试编写这些测试的原因。我已经尝试过看起来不错的 vows.js,但我不知道如何整合我的 API 测试,我需要某种客户端。我只需要一个简单的帖子来测试登录系统的例子。

0 投票
2 回答
885 浏览

node.js - 使用 Vows 测试 Mongoose 模型

对整个 node.js 社区来说相当新,我在我的第一个应用程序上进行单元测试时遇到了问题。问题是它们通过了,但它们实际上从未在回调中运行断言。据我了解,猫鼬(我用来与 MongoDB 对话的库)使用回调来处理它的 API。在我的誓言测试中,这些回调似乎没有被触发。一个例子:

关于我在这里做错了什么的任何想法?

0 投票
3 回答
566 浏览

node.js - 如何通过 Vows 的 run() 方法使用不同的记者?

Vows 有一个 run() 方法,可以在 node 下运行测试,无需使用vows命令。

https://github.com/cloudhead/vows/blob/master/lib/vows/suite.js中,我们可以看到此方法采用一个选项参数,该参数允许指定除默认值之外的报告器:

应该在选项对象中传递什么值来选择不同的报告者,例如spec报告者?

0 投票
1 回答
245 浏览

javascript - Vows.js:在内部主题中访问从外部主题返回的参数

我想知道是否有任何方法可以从内部主题的测试中获取外部主题的返回值。如果这令人困惑,这里有一个例子:

0 投票
2 回答
489 浏览

node.js - Vows.js - this.callback 返回主题与誓言的参数数

来自誓言网站:“当 this.callback 被调用时,它会将接收到的参数一一传递给测试函数,就好像这些值是由主题函数本身返回的一样。” 换句话说,如果我们使用请求库来处理我们的 http 请求,我们的主题和誓言可能如下所示:

但串在一起的话题似乎有不同的规则。他们似乎只传递一个论点。这是来自 Vows 网站的示例:

因此,第二个主题没有得到 (err, stat) 之类的参数,而是得到 (stat)。

有人知道为什么会这样吗?

0 投票
2 回答
1663 浏览

javascript - 使用 Zombie.js 查询 Backbone.js 应用程序的 DOM

今天第一次尝试Zombie.js,我无法访问通过 javascript 填充 DOM 元素的页面(特别是 Backbone.js 应用程序)。作为一个简单的示例,我访问了Backbone.js Todo 应用程序并手动添加了一些项目。然后我尝试#todo-list使用 Zombie 抓取元素中的 html,但它返回为空。我已经设置browser.runScripts = true好了,所以不应该一切都准备好让僵尸查询吗?

看源码,里面的HTML确实是空的。Zombie.js 甚至可以做到这一点吗?还是我需要像这里所做的那样使用 Jasmine 之类的东西?

我在下面包含了示例代码,以及我得到的响应。

以及运行的输出vows