Tag: 茉莉花

testing一个消费诺言的函数

我有一个平均的应用程序,我试图让testing工作在节点端。 asynchronous事件封装在控制器中使用的promise中。 我在testing控制器:( 我试图testing的控制器: ProjectController.prototype.getAll = function(req, res, next) { req.dic.subjectRepository .getById(req.params.subjectId) .then(function(subject) { res.json(subject.projects); }, function(err) { return res.status(404).send('Subject does not exist.' + err); }); }; subjectRepository是我们的数据源,它返回一个promise( mpromise因为我们正在使用mongoose ,但不应该): 所以在我们的testing中,我们试着嘲笑请求(我们正在从一个中间件注入我们的dependency injection容器到req )和响应(如果response.json()已经被我们试图获取的主题调用,testing成功)和我们的subjectRepository。 我们使用bluebird (虽然我尝试了其他人的挫折)为我们的subjectRepository创build假承诺: describe('SubjectController', function() { 'use strict'; var Promise = require('bluebird'); it('gets all existing subjects', function() { // ————————————- // subjectRepository Mock […]

量angular器/节点版本兼容性

我正在使用量angular器进行e2etesting,并使用grunt-task-runner软件包来运行testing。 在我的package.json文件中我有: { …, "grunt-protractor-runner": "^2.1.2", …, "protractor": "^2.5.1", … } 而在我的protractorConfig.js我使用framework: 'jasmine2' 我的意图是使用量angular器2.5.1 + grunt-protractor-runner 2.1.2节点版本0.12.9,并使用量angular器3.0.0 + grunt-protractor-runner 3.0.0节点版本> = 4.x。 事实是,当我使用节点版本0.12.9或5.4.1运行npm install时,我总是在node_modules文件夹中有相同的量angular器版本 – 2.5.1和相应的grunt -spactor-runner。 我究竟做错了什么? 任何想法将不胜感激。

量angular器 – 每次运行后都不能读取未定义属性“headerPrinter”的exception

我真的不知道这个例外的原因是什么,它的副作用是什么。 但是即使所有的testing用例都通过了,每次都会出现。 请帮忙弄清楚如何解决这个问题 – [launcher] Error: TypeError: Cannot read property 'headerPrinter' of undefined at printHeader (C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:81:8) at C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:56:19 at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20) at [object Object].promise.Callback_.goog.defineClass.notify (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25) at [object Object].promise.Promise.notify_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12) at Array.forEach (native) at Object.goog.array.forEach (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43) at [object Object].promise.Promise.notifyAll_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16) at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21) at runMicrotasksCallback (node.js:337:7) [launcher] Process exited with error code 100 量angular器conf: //-=-=-=- […]

NodeJS,WebStorm和Jasmine:ReferenceError:describe在debugging时没有定义

我试图debugging一些使用WebStorm 2016.1.2编写的Jasminetesting。 我的testing代码如下所示: var should = require("should"); var myLib = require("../my-lib"); describe("Scenario", () => { it("works as expected", () => { myLib.do().should.not.throw() }); }); 我的目录结构如下所示: │ ├───node_modules │ ├───.bin │ ├───aws-sdk │ │ └───<snip> │ ├───jasmine │ │ └───<snip> │ ├───jasmine-core │ │ └───<snip> │ ├───karma │ │ └───<snip> │ ├───karma-jasmine │ │ └───<snip> │ […]

问题在JavaScript的recursion调用

说明:我想从网页上读取一个特定的标签,其值将变为“开始”,“进行中”,“成功”,“错误”之一。 一旦标签值变为“成功”或“错误”,就不会有任何进一步的变化。 问题:当我在量angular器中使用JavaScript读取标签值时,标签的文本值不会返回到调用函数; 相反,它返回“未定义”。 下面是我的代码,请看看,让我问题的地方。 CheckColor_Test.js var commonFunctions = require('../pages/CommonFunctions.js'); describe("Run Test", function () { it("should stop once the status reached Success or Error", function () { var processStatus = commonFunctions.refreshTillProcessFinish(); expect(processStatus).toContain('Success','Error'); }); }); CommonFunctions.js Var CommonFunctions = function(){ var label = element(by.id('Status')); var refreshStatusBtn = element(by.css('[ng-click="getJob()"]')); this.getStatusValue = function () { return label.then(function (headers) […]

量angular器 – 如果条件元素是可见的如何添加如此跳过这个testing用例否则做下面的动作

我试图给2个替代用例添加一个“if”条件, 第一个是如果它存在用户,所以它应该在屏幕上寻找“idan + free@gmail.com”string,跳到testing用例到下一个, ELSE –执行以下操作。 testing用例 – describe ('Production – New Free Account Test Case', function() { var EC = protractor.ExpectedConditions; var dashboardBtn = element(by.xpath('//div/md-sidenav/f-main-menu/div[1]/ul[1]/li[1]/button/div/div[1]/md-icon')); var noActivation = element(by.linkText("idan+free@gmail.com")); beforeEach(function() { browser.ignoreSynchronization = true; }); afterEach(function() { browser.ignoreSynchronization = false; }); it ('Production – Free Account – Activation', function() { browser.wait(EC.elementToBeClickable(dashboardBtn), 30000); dashboardBtn.click(); browser.wait(EC.visibilityOf(element(by.css("div.task-header.font-smd.task-clickable.ng-binding.flex"))), […]

即使抛出错误,Jasmine toThrow也不起作用

即使发生错误,此代码也会失败。 it('should throw error when foo config value is falsey', (done) => { const config = { foo: null, bar: 'some-name' }; expect(quux.withConfig(config).load('*', (err, inst) => { done(); })).toThrow(); }); 我也试过这个 it('should throw error when foo config value is falsey', (done) => { const config = { foo: null, bar: 'some-name' }; expect(SelfServiceCompletedJobStore.withConfig(config).load('*', (err, inst) […]

你如何用node.js jasmine设置断点?

好的,天真的问题在这里,但我有点新nodejs。 我正在用茉莉花写一个testing脚本。 在我的代码中似乎有一个错误,所以我把“debugging器”放在其中一行,茉莉花不会因为某种原因而停止。 我知道它也到达了代码,因为我把一个console.print命令,并显示该行。 有什么令人难以置信的简单,我失踪? 我不能在JavaScript代码中设置断点并以某种方式进入REPL?

Jasmine-node Body未定义

我是新来的茉莉花,并试图进行基本testing,但我不断收到错误。 我的testing如下 var request = require('request'); var base_url = 'http://localhost:8080' var getdata = require('../modules/getdata.js') var index = require('../index.js') describe("GetData Test",function(){ describe("Get /", function() { it("returns statusCode 200", function(done) { request.get(base_url, function(error, response, body){ expect(response.statusCode).toBe(200); done(); }); }); it("returns Api is Online", function(done) { request.get('base_url', function(error, response, body){ console.log(request.body) expect(body).toBe("Api is online"); index.closeServer(); done(); }); }); […]

茉莉花节点的伊斯坦布尔代码覆盖率生成一个空的覆盖文件夹

我正在运行茉莉花testing我的代码,它工作正常。 在我的package.json文件中,我有这个命令: “cover”:“./node_modules/.bin/istanbul cover node_modules / .bin / jasmine-node unit_test” 其中unit_test包含我的茉莉花规格。 由于某些原因,当我运行我的覆盖范围时,它运行我的茉莉花testing,产生一个空的覆盖文件夹,然后挂起。 有谁知道为什么请?