小编jbp*_*ros的帖子

用于Windows的NPM包'bin'脚本

Cucumber.js提供了一个命令行"binary",它是一个.js包含shebang指令的简单文件:

#!/usr/bin/env node
var Cucumber = require('../lib/cucumber');
// ...
Run Code Online (Sandbox Code Playgroud)

package.json使用"bin"配置键指定二进制文件:

{ "name" : "cucumber"
, "description" : "The official JavaScript implementation of Cucumber."
// ...
, "bin": { "cucumber.js": "./bin/cucumber.js" }
// ...
Run Code Online (Sandbox Code Playgroud)

这一切都适用于POSIX系统.有人在Windows上运行Cucumber.js时报告了一个问题.

基本上,该.js文件似乎是通过Windows的JScript解释器(而不是Node.js)执行的,并且由于shebang指令而引发语法错误.

我的问题是:建议在UNIX和Windows系统上运行的"二进制"脚本的推荐方法是什么?

谢谢.

windows posix package node.js npm

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

如何存根require()/ expect调用模块的"root"函数?

请考虑以下茉莉花规格:

describe("something.act()", function() {
  it("calls some function of my module", function() {
    var mod = require('my_module');
    spyOn(mod, "someFunction");
    something.act();
    expect(mod.someFunction).toHaveBeenCalled();
  });
});
Run Code Online (Sandbox Code Playgroud)

这工作得非常好.像这样的东西使它变绿:

something.act = function() { require('my_module').someFunction(); };
Run Code Online (Sandbox Code Playgroud)

现在来看看这个:

describe("something.act()", function() {
  it("calls the 'root' function of my module", function() {
    var mod = require('my_module');
    spyOn(mod); // jasmine needs a property name
                // pointing to a function as param #2
                // therefore, this call is not correct.
    something.act();
    expect(mod).toHaveBeenCalled(); // mod should be a spy
  });
});
Run Code Online (Sandbox Code Playgroud)

这是我想用此规范测试的代码:

something.act …
Run Code Online (Sandbox Code Playgroud)

javascript bdd stub node.js jasmine

8
推荐指数
2
解决办法
6949
查看次数

标签 统计

node.js ×2

bdd ×1

jasmine ×1

javascript ×1

npm ×1

package ×1

posix ×1

stub ×1

windows ×1