问题标签 [expect.js]

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 投票
1 回答
220 浏览

javascript - Codeacademy 课程中的 Expect.js 验证问题

我正在创建一个关于 codeacademy 的课程,使用户能够了解 HTML 表单的创建。这主要是为了我自己的娱乐,所以我们都在同一页上。在阅读了提交测试指南和 API之后,我决定使用它expect.js来处理我的大部分验证,因为我需要遍历 DOM。

因此,我正在创建的课程要求用户创建两个标签元素(标签标签内包含内容)和两个输入字段(type定义了属性并将值设置为text)。同样,标准如下:

  1. <label>在元素内部创建两个元素<form>。请务必指明用户将填写的内容!
  2. <input>在每个元素下方创建两个<label>元素。一定要包含并定义type属性!

假设我有以下代码:

这会过去的。根据我对 expect.js 操作方式和当前验证的理解,它不应该通过,因为用户忽略了添加第二个type="text"属性

我的验证标准如下:

如果用户提交 HTML 代码,那么它应该会失败,但它正在通过。我的断开连接是当用户输入第二组<label>标签<input>时。如果他们在第二个中省略内容<label>和/或type具有它的值的属性text仍然会通过。

我在这里缺少什么特别或独特的东西吗?我已经尝试了上面提供的验证代码,无论是否使用 out 方法链接都无济于事。

我试过的

  1. 在 Codeacademy 上查看有关如何纠正此问题的任何提示
  2. 查看 expect.js README 以获取任何提示
  3. 在 StackOverflow 上寻找任何提示
  4. 删除了方法链并重新建立了方法链
0 投票
0 回答
1072 浏览

javascript - 如何获取要在 HTML 上显示的断言错误消息?

我一直在尝试学习如何为我的项目使用 expect.js 断言插件。我的问题是我想获取仅显示在浏览器检查元素的控制台部分上的错误消息,以便在我单击按钮时向我的 HTML 页面发出警报。这是我到目前为止一直在做的事情

当我单击按钮时,当我从浏览器检查检查元素时,错误将显示在控制台上。我想要做的是在我单击按钮时收到错误消息并提醒消息。

0 投票
1 回答
13394 浏览

javascript - Mocha 测试:未捕获的 TypeError:无法读取 null 的属性“状态”

学习 TDD 和我对“Hello World”服务器响应的第一个简单测试在 Mocha 中失败了。我正在使用 Mocha.js、Superagent 和 Expect.js。

当 I 时curl -i localhost:8080,我得到正确的响应和状态码。

测试代码:

服务器代码:

摩卡输出:

我试过用谷歌搜索这个问题,但没有找到我做错了什么。

0 投票
1 回答
1870 浏览

node.js - Socket.IO 服务器未收到来自客户端的消息

我正在通过创建一个聊天应用程序来玩弄 Node、Socket.IO 和 BDD。在其中一项测试中,我收到一个超时错误,说明:

错误:超过 2000 毫秒的超时。确保在此测试中调用了 done() 回调。

受影响的测试是

我发现这个问题的原因是chatterMessage事件没有被服务器捕获。虽然我确实指定了它。

控制台的输出是:

发送消息!
发送!
错误:超过 2000 毫秒的超时。确保在此测试中调用了 done() 回调。

我可能做错了什么。我对Node和Socket.IO不太熟悉,所以如果这个问题很明显,我很抱歉。

我用搜索词“ socket.io server not received from client ”环顾谷歌,但从我发现的情况来看,到目前为止,没有什么能帮助我解决我的问题。

但是,我确实尝试了这个问题的解决方案,但这并没有为我解决。

我正在使用 Mocha 和 expect.js

完整的测试是:

我的客户 (ChatterClient) 是:

服务器 (ChatterServer) 是:

0 投票
2 回答
46 浏览

javascript - 测试,我是否需要在我的函数中添加更多的 Return 语句?

我想开始使用测试框架,mocha + expect 对我来说似乎不错。

说我有这个功能,

为了使其可测试,我是否需要添加如下所示的 Return 语句?

还是我应该测试 dom 元素“loader”?

0 投票
2 回答
6495 浏览

reactjs - 由于需要 DOM,使用 reactjs renderIntoDocument 进行测试保持失败

我是 reactJS 的新手,并尝试学习如何使用它进行测试。我遇到了以下测试实用程序方法。但是我不断收到同样的错误message:ReferenceError: document is not defined


渲染文档

将组件渲染到文档中分离的 DOM 节点中。这个函数需要一个 DOM。

注意:在导入 React 之前,您需要使 window、window.document 和 window.document.createElement 全局可用。否则 React 会认为它无法访问 DOM,并且像 setState 这样的方法将不起作用。


我知道它丢失 DOM 失败的原因,但是我如何插入 DOM 或需要它?


我的测试如下:

0 投票
2 回答
536 浏览

node.js - 使用 mocha 测试 Node.js api

我正忙于为我编写的现有 nodejs api 构建功能测试。我正在使用 mocha 和 expect.js。

一个失败的测试是当我想对 url 参数的存在进行否定测试时。如果参数丢失,我想要的是向服务的使用者发送一条消息。

目前我的阳性测试有效:

但是,以下内容不起作用,我得到的只是超时:

上述两个测试都在测试这个端点:

但是,如前所述,第一次测试成功,而第二次测试超时。

更新 1:此外,我得到以下输出:

更新2:因此添加以下代码可以解决问题,但并不能真正解决问题:

显然,我不希望有一段相当多余的代码。我很困惑为什么我不能进入 'api/v1/user/:userid' 端点并且只是测试那里是否:userid存在?就好像 nodejs 要求存在:userid,否则端点不存在。这个对吗?

我错过了什么?

0 投票
1 回答
302 浏览

node.js - 期望(js)在超级代理(js)中不起作用

我正在尝试为我一直在创建的 Rest API 做 TDD。NodeJS 的新手。

我创建了一个 Rest API,并在响应中执行所有expect检查。要发出我正在使用的 HTTP 请求SuperagentJS(也尝试过RequestJS)。

这是我的代码的样子(仅限片段,而不是整个代码)

无论我尝试什么,摩卡咖啡总是会产生成功的结果。(所有测试用例通过)

请告诉我在这里缺少什么。我应该怎么做才能在httpRespnse. 我确信该请求工作正常,因为每当我使用时console.log(httpResponse.text),它都会返回默认的 apache 主页。

0 投票
1 回答
4155 浏览

javascript - 测试 Redux 组合减速器

假设我有几个减速器功能,我将它们全部组合成一个减速器combineReducers(...),有没有一种方法可以测试组合减速器实际包含的减速器?

例如,如果我有这个:

我可以用 Mocha 和 Expect.js 编写一个测试,使我能够检查rootReducer包含是否说reducer2吗?这甚至可能吗?

我目前设置项目的方式是,每个减速器都在一个单独的文件中,然后导入到该combineReducers(...)函数用于将它们全部组合起来的文件中。我正在测试所有单个减速器以检查它们是否做了他们应该做的,但我也认为测试组合减速器以确保它包含它应该包含的所有其他减速器是一个好主意(以防我忘记例如添加一个)。

谢谢

0 投票
3 回答
125 浏览

javascript - 当断言在承诺中时,如何获得有意义的测试错误?

当我需要检查承诺中的事情时,我很难在测试中获得有意义的失败。

这是因为大多数测试框架throw在断言失败时使用,但那些被then承诺所吸收......

例如,在下面我希望 Mocha 告诉我'hello'不等于'world'...

在这里完成小提琴

使用 Mocha,我们可以正式返回承诺,但这完全消除了错误,因此更糟......

注意:我正在使用mochaexpect.js(因为我想与 IE8 兼容)