问题标签 [jestjs]
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.
node.js - 为什么我在用 jest 测试节点应用程序时看不到控制台日志输出
我是 jest 测试的新手,我似乎无法看到我想测试的模块的控制台输出。
我的模块.js:
我的模块-test.js:
为什么开玩笑在“my-module.js”中吞下我的 console.log 输出?
jestjs - Jest: Cannot call method 'split' of undefined
Given the following jest test (testfile-test.js):
Also have the following jest config in package.json:
But running this test results in the following:
If I remove "var testfile = require('../testfile');" from the test it works fine. Why aren't the send/mime modules getting mocked?
javascript - 使用 Jest 进行测试时,是否有更快的方法来重置模拟?
我正在编写一些 React/Flux 代码并使用 Jest 对其进行测试。到目前为止,一切都很好,只是我的测试已经需要很长时间才能完成。
罪魁祸首似乎是在每次测试之间重置模拟。
我的一般设置如下所示:
在我的示例中,如果我不在两个测试之间重新加载商店,我将得到调用次数的错误结果getDoobles
,这是有道理的,因为它将是同一个对象。
但是重新加载模拟需要一些时间,如果我做了很多测试,那么它们最终会变慢。
我很想克隆对象或调用重置函数。单个函数 ( ) 有一个重置函数,mockClear()
但似乎没有对整个对象进行全局重置。而且我无法克隆该对象,因为克隆与我的 React 组件正在访问的对象不同,因此不会注册任何调用。
这就引出了另一个问题。看来我需要重新加载依赖链中的所有内容。如果我只是重新要求WidgetStore
,那么我有权访问的对象似乎与Widget
有权访问的对象不同。
如果我只是重新加载WidgetStore
,Widget
然后我经常会遇到错误,这似乎是由于加载了两个 React 副本引起的。所以我最终也不得不每次都重新加载 React。
那么有没有更好的方法来做到这一点?
jasmine - 如何使用 Jest 测试 Reflux 动作
我在测试我的应用程序中是否正确触发了 Reflux 操作时遇到了困难,实际上它们似乎根本不适用于 Jest。我有这个示例测试:
哪个输出:
即使使用 Jasmine 异步功能,它似乎也不起作用
给我...
有人做过这项工作吗?
reactjs - 反应不受控制的形式 - 空值开玩笑测试
当我通过 Jest 测试不受控制的表单时,我的onChange
处理程序会收到新值,但是当我确认它返回的值时Null
。
我在这里做了一个测试 - https://github.com/timarney/react-formtest
我必须使用 aControlled Form
或ReactLink
吗?
http://facebook.github.io/react/docs/two-way-binding-helpers.html
javascript - 如何模拟像 new Date() 这样的构造函数
我有一个依赖于new Date
创建日期对象然后对其进行操作的方法。我正在测试操作是否按预期工作,因此我需要将返回的日期与预期日期进行比较。为此,我需要确保new Date
在测试和正在测试的方法中返回相同的值。我怎样才能做到这一点?
有没有办法真正模拟构造函数的返回值?
我可以创建一个模块,该模块可能需要一个提供日期对象并且可以模拟的函数。但这在我的代码中似乎是不必要的抽象。
要测试的示例函数...
我如何模拟的返回值new Date()
?
javascript - 您如何在 Jest 中手动模拟您自己的文件之一?
我正在尝试在 Jest 中模拟一个对象(我创建的),以便我可以在反应组件中提供默认行为(因此不使用真正的实现)
这是我的反应组件 ChatApp(非常简单)
所以我有一个自定义的 I18n 依赖项来进行翻译(I18n 是我编写的,它是 node-polyglot 的包装器)。
所以我想做一个基本的测试,看看 H1 中是否有正确的词,但我不想在我的 I18n 对象上设置 jest.dontMock() ,因为我不希望它使用真实的对象在 ChatApp 测试中。
所以按照 jest 网站上的基本说明,我创建了一个mocks文件夹并为 i18n 创建了一个 mock 文件,它从原始对象生成一个 mock,然后覆盖 t 方法并添加一个方法来允许我设置返回字符串吨。
这是模拟对象
现在在我的 ChatApp 测试中,我需要在每个之前进行模拟,如下所示:
如果我 console.log 测试中的 i18n 对象,那么我得到正确的模拟对象, __setReturnString 也会被触发(就像我在该消息中 console.log 我看到日志一样)。
但是,如果我 console.log 实际 React 组件中的 i18n 对象,那么它会得到一个 Jest 模拟,但它没有得到我的 Jest 模拟,所以 t 方法是一个不做任何事情的空方法,这意味着测试失败.
任何想法我做错了什么?
非常感谢
reactjs - How to check if component has child component
I am using Jest to test a ReactJS app. How can one test if the view controller has the necessary child components present.
For example, here is an example of the view controllers' render function:
For HTML elements, something like will do:
How can I do the same for the Form or Table components ?
Thank you!
reactjs - 如何从组件测试中测试 ReactJS Flux Action(在 Jest 中)?
我有一个组件,单击按钮即可调用通量操作:
现在,我希望测试基本上能够模拟按钮单击(我知道该怎么做)。
并在按钮上单击检查以查看是否使用给定字符串调用了“MessageActions.sendMessage”函数。
如何从我的测试中访问 MessageActions?
我正在测试的对象称为 ChatMessage,但 MessageActions 是在 React.CreateClass 代码之外定义的。
我在测试中尝试过一些事情,例如:
和
但是没有任何效果,因为它只是说 MessageActions 是未定义的。
ReactJS 文档有一个测试商店的(蹩脚的)示例,但没有关于如何测试组件中使用的操作。
请提供任何帮助
javascript - Jest 中的 XMLHttpRequest 测试
我想测试 AJAX 方法(vanilla XHR),但我找不到使用Jest框架的方法。我找到mock-ajax.js
了茉莉花。问题是我找不到安装它的方法。
是否有更好的方法在Jest中对 Ajax 函数进行单元测试?