Articles of jestjs

如何使用Node.js执行集成testing?

我正在编写一个充当GraphQL服务器的Node.js应用程序。 我想testingGraphQL是否给我正确的结果。 我的猜测是在每个testing中向服务器发出请求,然后观察是否正确。 但是我不确定如何设置它,如何在所有testing完成之前运行服务器并清理数据库并closures它。 我之前使用Ruby on Rails与rspec一起工作过,所以我想在Node.js中做类似rspec事情。 有没有办法使用Jest来完成它? 如果没有,我怎么能做一些相似的事情?

EADDRINUSE 127.0.0.1:5858在jesttesting期间debugging

为了避免在Jesttesting的debugging过程中出现以下错误: Error: listen EADDRINUSE 127.0.0.1:5858 at Object.exports._errnoException (util.js:1022:11) at exports._exceptionWithHostPort (util.js:1045:20) at Agent.Server._listen2 (net.js:1262:14) at listen (net.js:1298:10) at doListening (net.js:1397:7) at _combinedTickCallback (internal/process/next_tick.js:77:11) at process._tickCallback (internal/process/next_tick.js:98:9) 我运行我的testing使用 node –harmony –debug-brk=5858 node_modules/.bin/jest 问题是Jest正在分配一个新的进程来运行testing,新进程试图绑定到同一个debugging端口(在这种情况下是5858),作为父进程,并且该端口已经被父进程占用。 奇怪的是,这个错误经常发生,但并非总是如此。 有时上面的命令实际上允许debuggingtesting。

Jesttesting简单的香草JavaScript – 不能读取null的属性'addEventListener'

我试图用Jest和Node.js来testing我的应用程序。 使用JestJS运行testing时,避免在terminal中出现以下错误的正确设置是什么? 无法读取null的属性“addEventListener” sum函数的testing通过我注释掉在app.js文件中添加事件监听器。 我甚至不知道为什么这行以及由Jest执行的console.log('Not part…') ,因为我只导出sum函数。 我的index.html文件的内容: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <button id="button">JavaScript</button> <script src="./app.js"></script> </body> </html> 我的app.js文件的内容: function sum(a, b) { return a + b; } console.log('Not part of module.exports but still appearing in terminal, why?'); var button = document.getElementById('button'); button.addEventListener('click', function(e) { console.log('button was clicked'); }); module.exports […]

为什么Node fs.watchFile保持testing完成?

我最近把config-js整合到Jesttesting中来获得一个可configuration的网站url和凭证,但是现在我的testing没有完全完成。 通常,我从命令行运行npm test ,testing执行,并返回命令行提示符。 用testing中的config-js,testing部分结束,但是命令行只是挂起,我必须按ctrl + c才能回到提示符。 我做了一些实验,我很确定这是由于config-j使用fs.watchFile: fs.watchFile(this.pathToConfigFile, function () { self.loadConfig(self.pathToDefaults, self.pathToConfigFile, self.region); }); 当我注释这些线,一切工作正常。 我已经尝试使用fs.watch,而不是解决它。 就这样说,我实际上并没有在我的testing中做任何改变或热重assembly置文件。 如果有帮助,这里是testing: const Config = require('config-js'); let myConfig = new Config('./my.config.js'); describe('config test', function () { it('gets the baseUrl', function() { expect(myConfig.get('testing.baseUrl')).toEqual('http://foo.com'); }); }); 这里是configuration文件的样子: module.exports = { testing: { baseUrl: "http://foo.com" } }

在ES2017与巴贝尔和JEST意外令牌导入

我尝试在我的项目中使用Jest和bablejs和ES2017,根据Jest Getting Started页面以及ES2017的Bablejsconfiguration,这是我的.babelrc文件: { "presets": ["es2017"], "env": { "test": { "presets": ["es2017"] } } } 和我的包json是: { "name": "", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "jest" }, "repository": { "type": "git", "url": "" }, "author": "", "license": "ISC", "bugs": { "url": "" }, "homepage": "", "devDependencies": { "babel-cli": "^6.26.0", "babel-core": "^6.26.0", "babel-jest": […]

检查是否在unit testing中调用函数

您好我试图写一些unit testingJest为我编写的模块,但目前卡住,需要一些build议如何继续。 export const submitOrder = async (body, key) => { const clientRepo = new ClientRepository(db) const companyRepo = new CompanyRepository(db) const company = await getCompanyByKey( companyRepo, key ); const client = await createClient( clientRepo, body ); await addClientToCompany( companyRepo, client.id, company.id ); .. More things } 我可以轻松地testing每个函数( getCompanyByKey , createClient和addClientToCompany )通过传递一个嘲弄的存储库。 但是我也想通过检查我的仓库函数是否被调用来testing我的submitOrder函数的“stream”。 但是,我会需要每个存储库的实例,我没有实例化,直到我的submitOrder函数。 像这样的东西,这与我如何testing我的function是类似的。 […]

在Ubutu上执行Jest时,内存不足错误

我试图在Ubuntu 14.04.02上执行Jest,在一个4GB内存的虚拟机上执行。 节点版本0.12.2,npm 2.0.0-alpha-5 免费给我看: total used free shared buffers cached Mem: 3.8G 199M 3.6G 976K 1.1M 18M 当我运行npmtesting时,我不断收到各种内存不足的错误: Error: FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed – process out of memory FATAL ERROR: Committing semi space failed. Allocation failed – process out of memory # Fatal error in ../deps/v8/src/heap/store-buffer.cc, line 132 # CHECK(old_virtual_memory_->Commit(reinterpret_cast<void*>(old_limit_), grow * kPointerSize, […]

reactJs Jest:`jsdom 4.x以前只能用于io.js,而不是Node.jsT:

的package.json: { "name": "flux-pricing", "version": "0.0.1", "description": "Pricing component with flux", "main": "js/app.js", "dependencies": { "flux": "^2.0.0", "jest-cli": "^0.5.0", "jsdom": ">= 0.1.23 < 4.0.0", "react": "^0.12.0", "underscore": "^1.7.0" }, "devDependencies": { "browserify": "~6.2.0", "envify": "~3.0.0", "react": "^0.12.0", "reactify": "^0.15", "watchify": "~2.1.0", "gulp": "~3.8.9", "gulp-browserify": "~0.5.0", "gulp-concat": "~2.4.1", "node-jsx": "~0.2.0", "express": "~4.0.0" }, "scripts": { "start": […]

Jest错误:无法获取模拟元数据:node_modules / core-js / modules / $。global.js

我使用Jest来testing我的React-App。 我已经有一套testing套件了,但是我不能让其中的两套运行。 一个错误示例: FAIL react/utils/__tests__/ChartsUtils-tests.js (2.662s) ● ChartsUtils › it get labels for a date period – Error: Failed to get mock metadata: /Users/nessie/Sites/blackriver-analytics-project/node_modules/core-js/modules/$.global.js at Loader._generateMock (node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:251:15) at Object.eval (node_modules/core-js/modules/$.export.js:1:137) at Object.eval (node_modules/core-js/modules/es5.js:3:25) 1 test failed, 0 tests passed (1 total in 1 test suite, run time 3.68s) npm ERR! Test failed. See above for […]

如何利用请求集成testingasynchronousKoa节点API

我正在使用Koa2和Request对第三方进行RESTful API调用来处理我的第一个真实世界的Node项目。 Koa服务本身是相对简单的,但我正在尝试使用Jest编写一个集成testing。 我已经find使用Supertest / Superagent的Jest的例子 ,但我无法find如何使用只有Jes​​t和Request作为http客户端编写等效testing。 下面是Jest / Supertest的例子 const request = require('supertest'); const app = require('../../src/app') describe('Test the root path', () => { test('It should response the GET method', async () => { const response = await request(app).get('/'); expect(response.statusCode).toBe(200); }); }) 似乎我应该可以使用请求做超supertest / superagent在这里做的相同的事情,但我找不到任何例子。 感谢您的build议!