标签: jasmine-node

业力中的茉莉花测试:未捕获的ReferenceError:未定义require

Karma无法识别JSFileSpec.js文件中的'require'语句.运行karma.conf.js:

(function() {
    describe("DummyEmitter creation", function(){
        return it("creation", function(){
            var DummyEmitter = require('Util.DummyEmitter');
            var dummy = new DummyEmitter('someName');
            return expect(dummy).toBeDefined();
        });
    });
})();
Run Code Online (Sandbox Code Playgroud)

ReferenceError:未定义require

javascript jasmine-node karma-runner

46
推荐指数
3
解决办法
5万
查看次数

如何从命令行在Node.js上运行Jasmine测试

如何从命令行在Node.js上运行Jasmine测试?我已经通过npm安装了jasmine-node并编写了一些测试.我想在spec目录中运行测试并在终端中获得结果,这可能吗?

node.js jasmine jasmine-node

46
推荐指数
2
解决办法
6万
查看次数

使用node.js导出类

我有一个由jasmine-node在一个名为的文件中运行的以下测试代码 bob_test.spec.js

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');
  });
});
Run Code Online (Sandbox Code Playgroud)

为了使测试通过,我在一个名为的文件中编写了以下生产代码 bob.js

"use strict";

var Bob = function() {
}

Bob.prototype.hey = function (text) {
  return "Whatever";
}

module.exports = Bob;
Run Code Online (Sandbox Code Playgroud)

当我运行测试 - 使用jasmine-node .- 我得到以下F

Failures:

1) Bob encountered a declaration exception
Message:
    ReferenceError: Bob is not defined
Stacktrace:
    ReferenceError: Bob is not defined
    at null.<anonymous> (/Users/matt/Code/oss/deliberate-practice/exercism/javascript/bob/bob_test.spec.js:4:17)
    at Object.<anonymous> (/Users/matt/Code/oss/deliberate-practice/exercism/javascript/bob/bob_test.spec.js:3:1)
    at Module._compile (module.js:456:26)
    at …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jasmine jasmine-node

34
推荐指数
2
解决办法
5万
查看次数

当*是*测试时,jasmine-node表示"0测试"

我希望这会说"1次测试",但它会说"0次测试".知道为什么吗?这是在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
Run Code Online (Sandbox Code Playgroud)

即使我尝试创建语法错误,我得到相同的输出:

$ cat my.spec.js
it(
$ jasmine-node --verbose --captureExceptions my.spec.js
undefined

Finished in 0.001 seconds
0 tests, 0 assertions, 0 failures, 0 skipped
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试指定一个不存在的文件,它会抱怨:

$ jasmine-node no.spec.js
File: /tmp/no.spec.js is missing.
Run Code Online (Sandbox Code Playgroud)

javascript node.js jasmine jasmine-node

14
推荐指数
2
解决办法
6335
查看次数

Travis-CI与茉莉花节点

我正在尝试让travis-ci用jasmine-node测试我的nodejs模块.当我从命令行运行测试时,它们都会通过,但无论出于何种原因,Travis总是报告我的构建失败.我的.travis.yml看起来像这样:

language: node_js
node_js:
    - 0.6
    - 0.8
Run Code Online (Sandbox Code Playgroud)

我的package.json看起来像这样:

"scripts": {
    "test": "jasmine-node tests/*.spec.js"
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将一个before_script添加到我的travis.yml中

language: node_js
node_js:
    - 0.6
    - 0.8
before_script:
    - "sudo npm i -g jasmine-node"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

node.js travis-ci jasmine-node

10
推荐指数
1
解决办法
2552
查看次数

在Node.js中使用Jasmine测试子进程.send

我有一个具有a main-process.js和a 的Node.js应用程序child-process.js.

main-process.js如下所示:

var childProcess = require('child_process');
var job = childProcess.spawn('node', ["child-process.js"], {
  detached = true,
  stdio: ['ipc']
});
Run Code Online (Sandbox Code Playgroud)

child-process.js做了一些任务并通知父进程有关其状态,它使用:

exports.init = function() {
   //some processing here
   process.send({status: 'success or pending'});
}
Run Code Online (Sandbox Code Playgroud)

现在我想child-process.js使用jasmine-node进行单元测试,但是当我init()从规范中调用方法时,jasmine-node会抛出一个错误:

TypeError: Object #<process> has no method 'send'
Run Code Online (Sandbox Code Playgroud)

有没有办法模拟process变量?换句话说,我该如何对这种情况进行单元测试?

javascript testing unit-testing node.js jasmine-node

10
推荐指数
1
解决办法
565
查看次数

before/afterAll()未在jasmine-node中定义

我试图使用方法beforeAll毕竟茉莉,打造一套与测试frisby.js,因为实际上,弗里斯比没有此方法的支持.所以,这就是我要做的事情:

var frisby = require('frisby');
describe("setUp and tearDown", function(){
    beforeAll(function(){
        console.log("test beforeAll");
    });

    afterAll(function(){
        console.log("afterAll");
    });

//FRISBY TESTS
}); //end of describe function
Run Code Online (Sandbox Code Playgroud)

如果我将before/afterAll之前的方法更改为before/afterEach,则可以正常工作,但是当我使用before/afterAll时,控制台上会出现此错误:

消息:ReferenceError:未定义beforeAll Stacktrace:ReferenceError:未定义beforeAll

我的项目上安装了jasmine版本2.3.2,所以,我不知道我需要做什么来集成这个方法.

javascript jasmine jasmine-node frisby.js web-api-testing

10
推荐指数
1
解决办法
4275
查看次数

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

我通过运行全局安装了茉莉花npm install jasmine -g.

跑步jasmine -v给了我

jasmine v2.5.0
jasmine-core v2.5.0
Run Code Online (Sandbox Code Playgroud)

然后我按照文档运行

jasmine init
jasmine examples
Run Code Online (Sandbox Code Playgroud)

这创建了预期的/spec目录和spec/support/jasmine.json文件.

我的印象是,如果我现在运行,jasmine我应该在控制台中看到一些测试输出.相反,它只是暂时考虑它,然后什么都不做.

我在Git Bash终端的Windows 7计算机上运行节点v4.5.0.我也试过从Windows cmd提示符运行它,但这也不起作用.

node.js jasmine jasmine-node

10
推荐指数
1
解决办法
686
查看次数

如何在jasmine-node测试中强制错误分支

我正在使用jasmine-node测试节点服务器中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});
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

以下是我成功测试else块的方法:

describe('GET /api/players/:playerId/summary', function() {
  it('should return an object summarizing the player account',   function(done) {
    request
      .get('/api/players/' + playerId + '/summary')
      .set('Content-Type', 'application/json')
      .set('cookie', cookie)
      .expect(200)
      .expect('Content-Type', /json/)
      .end(function(err, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jasmine jasmine-node

10
推荐指数
1
解决办法
236
查看次数

从Node使用Jasmine的正确方法是什么?

经过多次黑客攻击后,我设法通过Node运行简单的Jasmine测试.

但是,有一些奇怪的东西我不明白......茉莉花文件导出函数似乎需要引用自己传回工作(这适用于Jasmine和ConsoleReporter).

我确定这不是正确的方法(尽管我很高兴我终于做了一些测试运行:)),那么有人可以解释更好的方法来做到这一点吗?

(注意:我不想引入更多第三方代码,我不理解像node-jasmine;我想了解我现在拥有的东西;不要添加更多!)

// 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;
expect = jasmine.getEnv().expect;


// Dummy tests

describe("A suite", function() {
    it("contains spec with an expectation", function() {
        expect(true).toBe(true);
    });
    it("contains spec with a failing expectation", …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jasmine jasmine-node

9
推荐指数
1
解决办法
8075
查看次数