Articles of jasmine node

如何扩展更多的“期望”functionfrisby.js?

有没有办法用自定义expect方法来扩展Frisby.js模块? 我不想修改源代码,这些扩展特定于我的REST API。 我的目标是通过将它们组合成一种方法来避免重复常见的testing。 问题是Frisby.js模块用这个代码导出它的方法: exports.create = function(msg) { return new Frisby(msg); }; 我如何将新方法添加到Frisby? 这更像是一个Javascriptinheritance问题,因为它适用于Node.js模块。 例如,testing.expect API的脚本会有很多重复的.expect子句,如.expectHeader()和.expectJSONTypes() 。 我想将这些结合到一个.expectSEwrapper()方法中。 此方法对于StackExchange API是唯一的,因此它不属于Frisby.js。 该脚本将如下所示: var frisby = require('frisby'); frisby.create('StackOverflow Info') .get('https://api.stackexchange.com/2.2/info?site=stackoverflow', {gzip: true}) .expectStatus(200) .expectHeader('content-type', 'application/json; charset=utf-8') .expectHeader('content-encoding', 'gzip') .expectJSONTypes('', { items: Array, has_more: Boolean, quota_max: Number, quota_remaining: Number }) .toss(); frisby.create('StackOverflow Badges') .get('https://api.stackexchange.com/2.2/badges?order=desc&sort=rank&site=stackoverflow', {gzip: true}) .expectStatus(200) […]

testing需要nodejs中的茉莉花模块

我可以加载需要在节点模块来testing茉莉花。 她的我的规格亚军 var coffee, isVerbose, jasmine, key, showColors, sys, i, len, jasmine = require('jasmine-node'), fs = require("fs"), sys = require('sys'); for (i = 0, len = jasmine.length; i < len; i++) { key = jasmine[i]; global[key] = jasmine[key]; } isVerbose = true; showColors = true; coffee = true; process.argv.forEach(function(arg) { switch (arg) { case '–color': […]

使用frisby.js或jasmine-nodetesting证书到期

我试图写一个testing用frisby.js检查证书的状态。 在证书过期n天之前,testing应该失败,n在下面定义: config.numberOfDaysBeforeTestFails 我用这个代码试了一下: var frisby = require('frisby'); var config = require('../config'); //load own config-file var request = require('request'); frisby.create('https2.0 – Perperation') .get(config.server + '/testData') .auth(config.username, config.passwort) .after(function(err, res, body){ var auth = "Basic " + new Buffer(config.username + ":" + config.passwort).toString("base64"); var r = request({ url: '<serverURL>', requestCert: true, rejectUnauthorized: false, headers : { […]

如何在浏览器中运行茉莉花节点testing(例如使用testem)?

如何在浏览器中使用testem( https://github.com/testem/testem )运行jasmine-node( https://github.com/mhevery/jasmine-node )testing? 他们都在nodeJS上运行,但我不知道如何将它们结合起来。 我想知道是否有任何我可以使用的库,或者是否有人成功定制了两个库来在浏览器中loggingtesting输出。

练习练习:茉莉节点。 – 找不到命令

我正在尝试运动练习的第一个练习。 我按照自述说明安装了Homebrew,然后安装了CLI。 一切都很好。 然后我input命令行下载第一个testing – Hello World。 再次,这工作得很好。 下一条指令是 Execute the tests with: jasmine-node . 我假设这是要input到terminal? 这是我试过的,它说“找不到命令”。 没有其他的指示。 我从来没有遇到过茉莉花。 我通过npm分别下载了jasmine-node, npm install jasmine-node -g …但这仍然没有区别。 任何人都可以build议我去哪里错了? 谢谢。

茉莉花节点期望不执行

今天我开始testing茉莉花,这对我来说是新的。 由于我正在使用一个使用NodeJS开发的GraphQL服务器,因此我正在使用jasmine-node 。 以下是我自己写的第一个规范,我认为它是工作的: const request = require('request'); const config = require('../sources/config'); const base_url = `http://localhost:${config.graphqlPort}/${config.graphqlRoute}`; describe("GraphQLServer.", () => { it("Should expect something.", () => { expect(1).not.toEqual(2); expect(1).toEqual(1); expect(true).toBe(true); expect(false).not.toBe(true); }); describe('When request is made.', () => { it('Returns statuscode 200.', () => { request.get(base_url, (error, response, body) => { console.log('Error: ', error); console.log(base_url); console.log('StatusCode: […]

未能在茉莉花节点中显示的testing

我有一个Web服务的基本testing: var request = require('http'), url = 'http://localhost:1337/'; describe('webservice', function() { it('should respond to /ping', function(done) { request.get(url + 'ping', function(res) { expect(res.statusCode).toBe(200); res.on('data', function(body) { var json = JSON.parse(body); expect(json.message).toBe("Hi, I'm alive"); expect(json.date).toBeDefined(); done(); }); }); }); }); 这似乎工作正常: $ jasmine-node –verbose tests/ping/ webservice should respond to /ping Finished in 0.032 seconds 1 test, […]

用jasmine监听asynchronous函数

我正在使用茉莉花节点来testing我的服务器。 我想伪造/绕过我的用户类中的一些validation相关的代码。 所以我会设置一个这样的间谍 – var user = { email: 'email@email.com', password: 'password' } spyOn(User, 'validateFields').andReturn(user); 但是validateFields函数是asynchronous的… User.prototype.validateFields = function(user, callback) { // validate the user fields callback(err, validatedUser); } 所以我实际上会需要这样的一个callback而不是回报 – var user = { email: 'email@email.com', password: 'password' } spyOn(User, 'validateFields').andCallback(null, user); 茉莉花是可以做到的吗?

具有请求的茉莉花节点 – testingredirect不遵循redirect的终结点

即使添加followAllRedirects只会将response.statusCode从302更改为200但是body仍然是前一个响应的内容,而响应的所有其他属性都反映了旧的response 。 注意:我正在使用grunt进行testing。 没有遵循redirect的原因?

特拉维斯CI超时节点茉莉花testing,但通过本地

我一直在一个命令行应用程序的节点,做一些文件系统读取和表示应用程序的东西,所有我的testing本地通过,但是特拉维斯似乎有一个问题时,build设(超时,这是一个茉莉花节点事情)。 这是我得到的 .travis.yml language: node_js node_js: – '>=0.10' before_script: – npm install -g grunt-cli – npm link script: – "grunt –verbose" sickmerge_spec.js // Set the test environment process.env.NODE_ENV = 'test'; // Dependencies var exec = require('child_process').exec, fs = require('fs'), version = require('../package.json').version, request = require('request'); // Helper function to exectue the sickmerge cli function execSickmerge […]