我有这个组件:importReactfrom'react';importVideoTagfrom'./VideoTag';importJWPlayerfrom'./JWPlayer';classVideoWrapperextendsReact.Component{//...componentcode}基于某些逻辑在内部呈现另一个组件(VideoTag或JWPlayer)但是当我尝试在一个Jest文件中测试它时我得到错误:找不到模块'./VideoTag'这三个组件在同一个目录中,这就是为什么当我转译它并在浏览器中看到它在运行时它实际上有效但看起来Jest在解析这些相对路径时遇到问题,这
我正在使用Jest进行单元测试,并且正在集成Cucumber.js以运行用Gherkin编写的规范。我已经全部设置好并且可以正常工作,但是我遇到了一个问题:如何使用Jest的expect?我可以使用chai,但我希望在单元测试和步骤定义之间保持相同的expect语法(我不希望to.equal在我的步骤定义和toEqual在我的单元测试)。我该怎么做?经过一些挖掘后,Jest似乎依赖于expectnpm包。我可以在我的package.json中明确依赖该包,但我更愿意使用我现有的Jest依赖项。也许这是不可能的,但我希望这是可能的。另一种选择是通过Jest测试运行器以某种方式执行Gher
是否可以将Jest与多个预设一起使用,比如jsdom和react-native?我想测试一个可以在Web和ReactNative环境中工作的React组件。问题在于组件可能使用ReactNative库或某些文档的方法。当我运行一些测试时,jest回复:Cannotfindmodule'NetInfo'from'react-native-implementation.js'当我尝试添加时"jest":{"preset":"react-native"}对于package.json,我得到:ReferenceError:windowisnotdefined 最佳答
classTestObject{constructor(value){if(value===null||value===undefined){thrownewError('Expectavalue!');}}}describe('testtheconstructor',()=>{test('itworks',()=>{expect(()=>{newTestObject();}).toThrow();});test('notwork',()=>{expect(newTestObject()).toThrow();});});此处有2个测试用例,一个有效,另一个无效。notwork的失败消
我正在开发一个reactJs应用程序。我正在使用jest来测试我的应用程序。我想测试一个下载blob的函数。但不幸的是我收到了这个错误:URL.createObjectURLisnotafunction我的测试函数:describe('download',()=>{constdocumentIntial={content:'aaa'};it('msSaveOrOpenBlobshouldnothavebeencalledwhennavigaoisundefined',()=>{window.navigator.msSaveOrOpenBlob=null;download(documen
我正在尝试找出Jest中的手动模拟。我认为这应该很容易……但事实并非如此。我的项目目录是这样的__测试__用户测试.js模特user.js__模拟__user.js节点模块...package.jsonmodels/user.js和models/__mocks__/user.js都有相同的代码:module.exports={create(username,password){returnnewPromise(function(resolve,reject){setTimeout(function(){resolve({"username":username,"password":pa
我正在尝试在Jest中创建一个类似于stringMatching但接受空值的自定义匹配器。但是,文档没有说明如何重用现有的匹配器。到目前为止,我有这样的东西:expect.extend({stringMatchingOrNull(received,argument){if(received===null){return{pass:true,message:()=>'Stringexpectedtobenull.'};}expect(received).stringMatching(argument);}});我不确定这是正确的方法,因为当我调用stringMatching匹配器时我没有
我是单元测试的新手,我只想测试位于特定目录中的文件我如何指定我希望测试仅对特定目录中的文件运行而忽略其他目录所以我已经通过npm安装了jest"jest":"^23.6.0",并通过在package.json中指定了我的测试命令scripts:{"test":"jest--verbose"}以上运行所有文件,但我希望它运行特定目录中的文件,例如仅最新目录我该如何进行 最佳答案 添加目录名作为参数scripts:{"test":"jest--verbose./my-directory"}
问题:我有一个简单的React组件,我正在使用它来学习使用Jest和Enzyme测试组件。在处理Prop时,我添加了prop-types模块来检查开发中的属性。prop-types使用console.error在未传递必需的props或props是错误的数据类型时发出警报。我想模拟console.error来计算它在我传入丢失/错误输入的props时被prop-types调用的次数。使用这个简化的示例组件和测试,我希望这两个测试的行为如下:具有0/2个所需Prop的第一个测试应该捕获模拟调用两次。具有1/2必需Prop的第二个测试应该捕获调用一次的模拟。相反,我得到了这个:第一个测试运
在Jest文档的帮助下尝试创建测试时我真的很困惑https://facebook.github.io/jest/docs/timer-mocks.html#content我正在尝试检查容器安装时的状态,然后几秒钟后,在我手动设置状态中的值(使用setTimeout())之后。我在Main的componentDidMount中有一个这样的函数:componentDidMount(){this.setStateAfterDelay();}函数的作用是:setStateAfterDelay=()=>{setTimeout(()=>{this.setState({fruits:['banana