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系统上运行的"二进制"脚本的推荐方法是什么?
谢谢.
请考虑以下茉莉花规格:
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)