Articles of jasmine

unit testing的JavaScript代码风格

我开始使用JavaScript的unit testing(与茉莉花)。 我有unit testingC#代码的经验。 但是,鉴于JavaScript是一种dynamic语言,我发现它是非常有用的,并使用JavaScript的expression力量编写testing,例如: describe('known plugins should be exported', function(){ var plugins = ['bundle','less','sass','coffee','jsn','minifyCSS','minifyJS','forward','fingerprint']; plugins.forEach(function(plugin){ it('should export plugin named ' + plugin, function(){ expect(all[plugin]).toBeDefined(); }); }); }); 就做这种非常规的testing写作而言,我并没有做过这样的testing(testing用例列表非常类似) 所以我想我的问题是 编写这样的testing是好的,还是应该将自己限制在一个更“静态types”的testing夹具上?

在Windows上使用karma-browserify找不到模块错误

我正在尝试使用Karma,Karma-Jasmine和Karma-Browserify在Angular / Browserify项目上设置unit testing。 我在Windows机器上,以供参考。 karma-cli在我的全局npmpath上, karma , karma-jasmine , karma-browserify和browserify都是本地npm安装,使用-D 。 我试图拉入一个单一的spec文件,如下所示: var PhoneListCtrl = require('../../../public/js/app/controllers/phone-list'); describe('PhoneListCtrl', function() { var scope, ctrl; beforeEach(function() { scope = {}; ctrl = new PhoneListCtrl(scope); }); it('should create "phones" model with 3 phones', function() { expect(scope).not.toBe(undefined); }); }); 我每次都得到以下错误: Uncaught Error: Cannot find module 'Cc/gGH' 克隆下面的回购,安装因果和所有插件,并试图运行他们的示例testing套件后,我得到了完全相同的错误: https://github.com/xdissent/karma-browserify https://github.com/waye929/angular-browserify […]

如何在节点中使用spec – grunt + karma + jasmine

含糊的版本问题: 如何使用grunt中的spec来使用require? 语境: 我正在做一个没有testing的现有节点项目,所以我读了一些,并意识到使用业力和茉莉花。 我读了一些Tutos(包括这些): http://kwilson.me.uk/blog/use-karma-and-grunt-to-run-your-jasmine-tests-in-real-time/ http://ahexamples.blogspot.com.br/2014/03/example-of-jasmine-karma-sonar-grunt.html 所以我试图运行我的规格咕噜,得到这个错误: X遇到一个声明exceptionReferenceError:找不到variables:require在file:///(…)-spec.js(line 2)(1) 这条线是这样的: var myHelper = require(…); 但是,如果我通过terminal“节点 – 茉莉花testing”使用它像一个魅力… 我的项目结构: 控制器/ 助手/ 楷模/ node_modules / 资源/ testing/ testing/规格/ 意见/ app.js Gruntfile.js 的package.json 在我的规范(内部testing/ spec /)我使用require('../../ helpers / helper.js'),这对节点茉莉花是好的,但没有与咕噜声。 节点茉莉花testing: ….. 在0.015秒内完成5个testing,5个断言,0个失败,0个跳过 咕噜: 运行“茉莉花:关键”(茉莉花)任务通过PhantomJStesting茉莉花规格 ReferenceError:无法findvariables:需要在app.js:1 Service HelpertestingX遇到声明exceptionReferenceError:无法findvariables:require在file:///(…)/ test / spec / serviceHelper- spec.js(第2行)(1) 1个规格0.005秒。 1次失败警告:任务“jasmine:pivotal”失败。 使用–force继续。 由于警告而中止。 […]

正确使用与茉莉花2的业力常识

我花了相当长的时间试图debugging这个,我想问问。 我甚至创build了一个GitHub仓库,但不会依赖它,所以在这里。 我试图利用PhantomJS的Karmatesting运行器中的CommonJS语法。 对于我的模块,我创build了我能想到的最简单的事情: exports.returnYes = function() { return "Yes"; }; 茉莉花testing是: var returnYes = require("../js/returnYes").returnYes; describe("returnYes", function() { it("should return Yes", function() { expect(returnYes()).toBe("Yes"); }); }); 而且,如果我做了一个jasmine init我可以从命令行运行它感谢jasmine-npm只需输出jasmine : $ jasmine Started . 1 spec, 0 failures Finished in 0.003 seconds 现在试着让它在karma里面工作:我用框架创build我的karma.conf.js : jasmine , commonjs 。 而且,我添加commonjs作为预处理器。 我尝试做一个karma run ,我发现它不能findglobal ,它是getJasmineRequireObj中getJasmineRequireObj的一部分,它声明了jasmineGlobal = global; […]

ERROR :

我使用业力和茉莉花进行一些unit testing。 我想要一个html输出,而不是检查控制台/terminal,并发现这个: https : //www.npmjs.org/package/karma-htmlfile-reporter这是完美的我的要求。 当我运行它时,我得到一个错误: `ERROR [karma]: [TypeError: Cannot call method 'push' of undefined] TypeError: Cannot call method 'push' of undefined at onBrowserStart (/usr/local/lib/node_modules/karma/lib/reporters/base.js:14:20) at null.<anonymous> (/usr/local/lib/node_modules/karma/lib/events.js:15:22) at EventEmitter.emit (events.js:117:20) at onStart (/usr/local/lib/node_modules/karma/lib/browser.js:128:13) at Socket.<anonymous> (/usr/local/lib/node_modules/karma/lib/events.js:15:22) at Socket.EventEmitter.emit [as $emit] (events.js:117:20) at SocketNamespace.handlePacket (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/namespace.js:335:22) at Manager.onClientMessage (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/manager.js:488:38) at WebSocket.Transport.onMessage (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transport.js:387:20) at Parser.<anonymous> (/usr/local/lib/node_modules/karma/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10) […]

使用Jest CLI时如何获得承诺?

我试图用Jest CLI来testing一个承诺,这个代码在浏览器中运行时应该执行。 不过,我想开始为它编写testing。 class ListCollection { constructor() { this.items = new Array(); } addItem(string) { const addItemPromise = new Promise( function (resolve, reject) { // set up async getting like a XMLHttpRequest setTimeout( () => { this.items.push(string); resolve(string); }.bind(this), 2000); }.bind(this) ); return addItemPromise; } } 目前我正试图让这个非常基本的testing工作。 我按照与茉莉花坑相关的文件进行testing。 jest.dontMock('../collections'); import Collection from '../collections'; describe("Collection", () […]

UMD的Grunttesting

我试图找出使用UMD工厂testingJavascript模块定义的最佳方法,类似于: https : //github.com/umdjs/umd/blob/master/returnExportsGlobal.js 我不想testing模块本身,我想testing模块在各种环境中正确导出/创build: 如果CommonJS(节点),模块是否正确导出? 如果AMD,它的定义是否正确? 如果浏览器(没有requirejs),是否创build了正确的全局? 我想用grunt和jasmine来运行这些testing。 我可以使用grunt-contrib-jasmine来testing点2和3,但不能testing点1。 我想我可以使用grunt-contrib-jasmine和grunt-jasmine-node的混合来testing正确的模块定义(具体实现我仍然需要弄清楚),但是感觉非常混乱。 在高层次,有没有人知道任何现有的方法来实现这一点,而不使用多个grunt插件?

在不改变数据库的情况下testingPOST到API的策略

我正在使用jasmine-node来testing我的API,并且它对我的GET路由非常有用。 现在,但是,我需要testing一些职位,我不知道如何去改变我的数据库。 我以为有一个想法就是在每个规范的最后重置我改变的任何价值。 这是合理的还是有更好的方法去testingPOST请求到我的API?

ReferenceError:无法findvariables:require at

我有一个关于使用Grunt的茉莉花的问题。 我不断收到错误, ReferenceError:无法findvariables:require at 每当我运行我的茉莉花testing。 这是我的Gruntfile.js的jasmine条目: jasmine: { js: { src: jsFiles, options: { specs: 'tests/*_spec.js', helpers: 'tests/helpers/*', vendor: 'vendor/*' } } }, 我可以运行一个虚拟testing没有要求就好了,但是当我在一个testing中包括一个要求,像这样,我得到要求的错误。 var testD = require('../src/events_to_actions'); describe("events_to_actions", function() { it("is dummy test", function() { expect(true).toEqual(true); }); });

如何解决在npm安装peerinvalid错误?

我试图按照步骤来贡献PhysicsJS( https://github.com/wellcaffeinated/PhysicsJS#contributing ),并在npm install出现以下错误。 npm ERR! peerinvalid The package grunt-contrib-jasmine does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer grunt-template-jasmine-requirejs@0.1.10 wants grunt-contrib-jasmine@~0.5.3 npm ERR! System Linux 3.13.0-24-generic npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" npm ERR! cwd /home/slacktracer/Dropbox/dev/PhysicsJS npm ERR! node -v v0.10.26 npm ERR! npm -v 1.4.3 npm ERR! code EPEERINVALID npm ERR! […]