Tag: jasmine

代码运行时如何使Jasminetesting失败

我正在testing一个AngularJS服务,并且作为其中的一部分,我想确保从不调用某个callback函数。 现在,我的testing看起来像 it('should succeed to login the user', function () { var params = { email: 'foo@bar.com', password: 'hunter2' }; var member = { remoteAddress: '1.2.3.4' }; $httpBackend.expectPOST(fakeApiUrl + '/1/authentication/login', params) .respond(200, member); auth.login(params.email, params.password).then( function (m) { expect(m.remoteAddress).toBe(member.remoteAddress); }, function () { // I want this to be fail() expect(true).toBe(false); } ); $rootScope.$digest(); $httpBackend.flush(); […]

如何在不同的环境中避免使用茉莉花的长相对path(../../../)?

我目前正在开发一个项目,我想在不同的环境下testing – 包括node.js和不同的浏览器,包括karma / selenium – 以避免兼容性问题。 (我想我会在浏览器中使用browserify,但是我还不熟悉它。) 我有一个嵌套的testing目录,如下所示: repo/ – project.js – project.my.module.js – spec/ — helpers/ — a.jasmine.helper.js — support/ — jasmine.json — project.my.module/ — ModuleClass.spec.js — project.MyClass.spec.js — project.OtherClass.spec.js 目前我只用jasmine-npm(对于node.js是jasmine 2.2)来testing项目。 通过testing工作目录是repo/ ,我用jasmine.js运行jasmine.js 。 jasmine.js加载jasmine.json : { "spec_dir": "spec", "spec_files": [ "**/*[sS]pec.js" ], "helpers": [ "helpers/**/*.js" ] } 现在我有两个问题在这里。 我如何通过require来避免长相对path,例如ModuleClass.spec.js文件中的require("../../project.my.module.js") ? (我宁愿使用一个简短的常量名称,就像我可以通过符号链接一样)。 […]

使用VSCodedebuggingJasmine规格

有没有什么办法可以通过VS Codedebugging我的代码(Node.js)和茉莉花testing? 我有一个规范,我创build一个间谍,但我的断言应该被调用的间谍是返回false,即使当我调用手动规范内调用的函数,它会运行到该代码。 我已经试过F5的应用程序附加一个debugging程序,启动一个快速服务器(我一直用于testing,直到现在),然后简单地从命令提示符下运行jasmine ,但没有打中断点的应用程序。 作为我在规范中做的一个例子,我build立了如下的间谍: var response = { tell: function(value) { console.log("inside response.tell spy"); } }; spyOn(response, "tell"); 调用我的函数,传递响应对象,然后添加我的期望: expect(response.tell).toHaveBeenCalled(); 但期望失败。 谢谢

特拉维斯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 […]

茉莉花节点testing执行两次

我的茉莉花节点testing执行两次。 我从Grunt任务和Jasmine命令运行这些testing。 结果是一样的我的testing运行两次。 我的package.json: { "name": "test", "version": "0.0.0", "dependencies": { "express": "4.x", "mongodb": "~2.0" }, "devDependencies": { "grunt": "~0.4.5", "grunt-jasmine-node":"~0.3.1 " } } 这是我的Gruntfile.js摘录: grunt.initConfig({ jasmine_node: { options: { forceExit: true, match: '.', matchall: true, extensions: 'js', specNameMatcher: 'spec' }, all: ['test/'] } }); grunt.loadNpmTasks('grunt-jasmine-node'); grunt.registerTask('jasmine', 'jasmine_node'); 我的一个testing文件: describe("Configuration setup", function() { it("should load […]

grunt-karma RangeError最大错误

最近我想开始使用Grunt来改善我的开发工作stream程。 虽然我在Grunt运行时遇到了一些麻烦。 在创build一个package.json文件和一个Grunt file.js我尝试用grunt-karma运行一个简单的testing,但没有运气。 我收到的只是错误 Loading "grunt-karma.js" tasks…ERROR RangeError: Maximum call stack size exceeded 我正在使用grunt-cli&grunt版本0.1.9和0.4.1分别运行节点版本10.12。 下面是我所有的开发依赖和我的grunt文件的包文件。 的package.json { "name": "crudangular", "version": "0.0.1", "devDependencies": { "grunt": "~0.4.1", "karma": "~0.8.6", "grunt-karma": "~0.4.4", "phantomjs": "~1.9.1-0" } } Gruntfile.js module.exports = function(grunt){ grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), karma: { unit:{ configFile: 'karma.conf.js' } } }); grunt.loadNpmTasks('grunt-karma'); grunt.registerTask('default',['karma']); } 任何帮助将不胜感激。 提前致谢。

有没有办法用Jasmine NodeJS发送JPG?

我试图用FrisbyJS(它位于Jasmine for Node的顶部)testing我的API。 我想知道是否有人知道如何使用茉莉花提交/发送图像? http://frisbyjs.com/ 我目前的代码是… var frisby = require('frisby'); var URL = 'http://localhost/api'; frisby.globalSetup({ request: { headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'api': 'key' } }, timeout: (30 * 1000) }); frisby.create('submit an image') .post(URL + 'image', {images: '@test.jpg'}, {method: 'POST'}) .expectStatus(200) .afterJSON(function(cart){ console.log('made it!'); }) }).toss(); 我得到以下错误: 1) Frisby Test: submit an image […]

噶茉莉不安装

我是Unit Testing新手,所以我今天才知道Jasmine和Karma 。 我安装了Karma: npm init npm install karma –save-dev npm install -g karma-cli npm install karma-jasmine –save-dev npm install karma-chrome-launcher –save-dev karma init 然而,当我尝试启动业力启动karma.conf.js它会引发一个错误: Error: Cannot find module 'jasmine-core' at Function.Module._resolveFilename (module.js:338:15) at Function.require.resolve (module.js:389:19) at initJasmine (/Users/appfoundry/Projects/Unit Testing/node_modules/karma-jasmine/lib/index.js:8:42) at Array.invoke (/Users/appfoundry/Projects/Unit Testing/node_modules/di/lib/injector.js:75:15) at get (/Users/appfoundry/Projects/Unit Testing/node_modules/di/lib/injector.js:48:43) at /Users/appfoundry/Projects/Unit Testing/node_modules/karma/lib/server.js:137:20 at Array.forEach (native) at […]

茉莉花节点找不到spec模块

我有一个用coffeescript编写的准系统规范: # test/foobar.spec.coffee describe "falsy test", -> it "should fail", -> expect(true).toBe false 当我从项目目录运行jasmine-node –coffee test/foobar.spec.coffee ,出现以下错误: Exception loading: /Users/myuser/programming/project/test/foobar.spec.coffee { [Error: Cannot find module '/Users/myuser/programming/project/test/foobar.spec'] code: 'MODULE_NOT_FOUND' } 我在用: node –version v0.10.8 jasmine-node –version 1.13.0 有谁知道这是为什么发生?

为什么我的茉莉花testing在DEFAULT_TIMEOUT_INTERVAL之前超时?

相关: 无法为茉莉花设置超时 Jasmine 2.4.1 我的testing报告由于超时而失败,即使超时值似乎大于所报告的时间。 我正在这样做: describe('tests content controller', function(){ beforeAll(function(done) { jasmine.DEFAULT_TIMEOUT_INTERVAL= 120000; //… }) fit('/content GET should return 200',function(done){ request(app) .get('/content') .set('Authorization', "bearer " + requestor.token) .set('Accept', 'application/json') .expect(200) .end(function (err, res) { console.log('timeout',jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 120000 if (err) done.fail(err); expect(res.statusCode).toBe(200); done(); }) }); 然后这个testing失败,与: 1) tests content controller /content GET should return 200 […]