Articles of 茉莉花节点

承诺解决后调用函数,但Jasmine不通过testing。 为什么?

我的应用程序使用一个服务,返回一个通常依赖于一大堆其他承诺的承诺。 我已经将这个重构成单独的命名函数,使testing(和可读性)更容易。 所以在这种情况下,我只想testing一下run函数是否完成了它的工作并调用其他函数。 例如 run() { return myService .connection .then(this.namedFunction1) .then(this.namedFunction2) .then(this.namedFunction3) .catch((error) => { console.log("doh!", error.stack); }); 当我testingnamedFunction1被称为茉莉花失败时,尽pipe事实并非如此。 下面是我为保持简单而编写的一个小代码示例: getString() { return Promise.resolve("Heeeelp. Heeeelp!!"); } printToConsole(string) { console.log(string); // This works! but Jasmine says nay 🙁 } myFunction() { this.getString() .then(this.printToConsole) .catch((error) => { console.log("Some error occurred", error); }); } …和testing: it("should call the […]

如何用gulp.watch使用茉莉花

我试图让我的testing运行,每次我保存一些文件。 这是一口气手表: gulp.task('jasmine', function() { gulp.src('spec/nodejs/*Spec.js') .pipe(jasmine({verbose:true, includeStackTrace: true})); }); gulp.task('watch', function () { gulp.watch(['app/*.js', 'app/!(embed)**/*.js','spec/nodejs/*.js'], ['jasmine']); }); testing例如app / maps.js我创build一个spec / nodejs / mapsSpec.js文件,如下所示: 'use strict'; var maps = require('../../app/maps'); describe('/maps related routes', function(){ it('should …', function(){…} … 如果我更改一个spec文件,一切运行良好,如果我修改app / maps.js文件,更改将触发testing。 如果我再次修改testing是激活的,但修改不起作用。 例如,如果我第二次添加一个console.log('foo'),我将不会看到它,直到我重新启动gulp手表并再次保存它。 所以只有一个茉莉花运行是可以用gulp.watch使用它。 我想这是因为需求被吞噬过程中的nodejscaching。 那我该怎么办?

茉莉花节点的目的是什么?

我可以用jasmine-node或jasmine来运行我的规格。 他们都运行我的规格。 那么, jasmine-node添加了什么值? 自述文件说: 这个node.js模块在node.js中提供了精彩的Pivotal Lab的jasmine规范框架。 https://github.com/mhevery/jasmine-node/blob/master/README.md 我不明白。 我的应用程序运行在node ,我的规范require节点模块..所以当我运行jasmine ,我已经使用node和jasmine 。 jasmine-node添加什么? 我特别不是要问为什么jasmine-node是你最喜欢的,或其他图书馆的build议的意见。 我只想知道, jasmine-node的目的是什么?

自动化Jasmine-Node和express.js

我使用express.js创build了一个简单的Webapp,并且想用jasmine-node来testing它。 到目前为止工作正常,但我的问题是,我必须手动启动服务器,每次我可以运行我的testing。 你能帮我写一个spec-helper来运行服务器(与另一个端口,然后是我的开发者)只是为了testing,然后杀死它?

为什么在`jasmine init`和`jasmine examples`之后运行`jasmine`什么都不做?

我已经通过运行npm install jasmine -g全局安装了jasmine。 运行jasmine -v给我 jasmine v2.5.0 jasmine-core v2.5.0 那么按照文档 ,我就运行了 jasmine init jasmine examples 这创build了预期的/spec目录和spec/support/jasmine.json文件。 我的印象是,如果我现在运行jasmine我应该在控制台中看到一些testing输出。 相反,它只是想一秒钟,然后什么都不做。 我在Git Bashterminal的Windows 7机器上运行node v4.5.0。 我已经尝试从Windows cmd提示符运行它,但也不起作用。

什么是从节点使用茉莉花的正确方法?

经过多次黑客攻击之后,我设法通过Node运行一个简单的Jasminetesting。 然而,有一些奇怪的东西,我不明白…茉莉花文件出口函数似乎需要一个引用自己传回去工作(这是茉莉花和ConsoleReporter)。 我敢肯定,这不是正确的方法来做到这一点(虽然我很高兴,我终于做了一些testing运行:)),所以有人可以解释更好的方法来做到这一点? (注意:我不想吸引更多的第三方代码,我不明白像茉莉花;我想明白我现在有什么;不添加更多!) // Include stuff jasmine = require('../../../Apps/Jasmine/jasmine-standalone-2.0.0/lib/jasmine-2.0.0/jasmine.js'); jasmineConsole = require('../../../Apps/Jasmine/jasmine-standalone-2.0.0/lib/jasmine-2.0.0/console.js') // WHAT THE? I DON'T EVEN KNOW WHAT THIS MEANS jasmine = jasmine.core(jasmine); jasmineConsole.console(jasmineConsole, jasmine) // Set up the console logger jasmine.getEnv().addReporter(new jasmine.ConsoleReporter({ print: console.log })); // Create some global functions to avoid putting jasmine.getEnv() everywhere describe = jasmine.getEnv().describe; it = jasmine.getEnv().it; […]

如何强制jasmine-nodetesting中的错误分支

我正在用jasmine-nodetesting节点服务器中API端点后面的控制器逻辑。 以下是这个控制器逻辑通常的样子: var getSummary = function(req, res) { var playerId = req.params.playerId; db.players.getAccountSummary(playerId, function(err, summary) { if (err) { logger.warn('Error while retrieving summary for player %d.', playerId, err); return res.status(500).json({ message: err.message || 'Error while retrieving summary.', success: false }); } else { res.json({success: true, summary: summary}); } }); }; 以下是我如何成功testingelse块: describe('GET /api/players/:playerId/summary', function() { […]

Travis-CI与茉莉节点

我试图让travis-ci用jasmine-nodetesting我的nodejs模块。 当我从命令行运行testing时,它们都通过了,但无论什么原因,Travis总是报告我的构build失败。 我的.travis.yml如下所示: language: node_js node_js: – 0.6 – 0.8 和我的package.json看起来像这样: "scripts": { "test": "jasmine-node tests/*.spec.js" } 我已经尝试添加一个before_script到我的travis.yml language: node_js node_js: – 0.6 – 0.8 before_script: – "sudo npm i -g jasmine-node" 有任何想法吗?

有*testing时,jasmine-node说“0testing”

我期望这个说“1testing”,但它说“0testing”。 任何想法为什么? 这是在OS X上。 $ jasmine-node –verbose my.spec.js undefined Finished in 0.001 seconds 0 tests, 0 assertions, 0 failures, 0 skipped $ cat my.spec.js describe("bar", function() { it("works", function() { expect("foo").toEqual("foo"); }); }); $ jasmine-node –version 1.11.0 $ npm –version 1.3.5 $ node -v v0.4.12 即使我尝试创build一个语法错误,我得到相同的输出: $ cat my.spec.js it( $ jasmine-node –verbose –captureExceptions my.spec.js […]

用node.js导出类

我有一个名为bob_test.spec.js的文件正在由jasmine-node运行的以下testing代码 require('./bob'); describe("Bob", function() { var bob = new Bob(); it("stating something", function() { var result = bob.hey('Tom-ay-to, tom-aaaah-to.'); expect(result).toEqual('Whatever'); }); }); 为了使testing通过,我写了一个名为bob.js的文件,下面的生产代码 "use strict"; var Bob = function() { } Bob.prototype.hey = function (text) { return "Whatever"; } module.exports = Bob; 当我运行testing – 使用jasmine-node . – 我得到以下的F Failures: 1) Bob encountered a declaration exception […]