Articles of node.js tape

在Node JS磁带中独立进行testing

我正在尝试在脚本中testing我在Node JS中编写的函数。 我正在使用磁带进行unit testing。 但是我面临着如何使每个testing用例都是独立的问题。 例如。 脚本中有一些全局variables。 这些variables的值在这些方法中被设置。 现在问题是这些variables在不同的unit testing用例之间共享这些值。 有没有办法在运行testing用例之前清除所有全局variables?

testing方法调用

我是一个黑客(即编写一些代码,并手动testingfunction),但现在我想添加一些更多的结构,我的编码通过添加一些unit testing,并遵循TDD方法。 但我正在努力构build一个validation方法的unit testing。 所以任何见解,将不胜感激。 我想testing我的readDirectories方法,但由于它是asynchronous的,我将不得不使用setTimeout – 但是我的testing不断返回一个错误: test.js test('The readDirectories method', (t) => { const xyz = new abc('/foo/bar/', '/foo/baz/'); const expected = ['/foo/bar/Download', '/foo/bar/HardDrive' ]; xyz.readDirectories(xyz.source) setTimeout(() => { let actual = xyz.directories; t.equal(actual, expected, 'should produce an array of subdirectories'); }, 10); }); 安慰 operator: equal expected: |- [ '/foo/bar/Download', '/foo/bar/HardDrive' ] […]

JS磁带 – 等待以前的asynchronoustesting完成移到下一个testing

我是与TAPE JS进行testing的新手。 我已经完成了所有的设置和工作,并且在定期testing中工作正常。 但是我试图testing一个独特的基于REST API的产品,这个产品依赖于在下一次调用之前已经完成的某些调用具有成功调用所需的信息。 所以这里是我想要工作的前两个电话: var SessionId; test('beginIqsSession', function (assert) { assert.plan(1); var requestData = {"ProductDataArray":{"Feid":"GIQNY","AltData":"SaneID:null","Debug":"false","PageId":"1.1"}}; request({ url: 'http://192.168.99.100/Iqs/api.php/beginIqsSession', method: "POST", json: requestData }, function(error, response, json){ if(json.responseDataPayload.SessionId) { SessionId = json.responseDataPayload.SessionId; assert.equal(1,1); } }); assert.end(); }); test('validateAddress', function (assert) { assert.plan(2); console.log("Retrieving validateAddress response"); var requestData = {"SessionId":SessionId,"ValidateAddressDataArray":{"PropertyStreetNumber":"20671","PropertyStreetName":"mountain vista dr","PropertyCity":"anchorage","PropertyState":"AK","PropertyZipCode":"99577"}}; console.log(SessionId); request({ url: […]

在磁带节点中断言

所以我试图testing一个函数,它是一个客户端函数(未完成),这就是为什么它被embedded在testing本身(直到我能找出一个更好的解决scheme)。 我遇到的问题是当我testing,看看是否该函数抛出一个TypeError。 我明白这个问题是因为它是testing返回值而不是函数本身,我不确定如何解决这个问题。 任何和所有的帮助表示赞赏! 胶带 test.js var test = require('tape'); test('GenerateRandomNumber Tests', function(assert){ /** * Generates a random number between the min/max * @param {int} the min value * @param {int} the max value * @param {array} list of values already stored * @return {mixed} int if success, false if exception thrown **/ var GenerateRandomNumber […]

如何使用磁带吞咽?

我正在尝试将Gulp和Tape( https://github.com/substack/tape ),NodeJstesting工具整合在一起。 我怎样才能做到这一点? 似乎没有一个现有的gulp插件。 我已经看到了,但是看起来真的很不雅: var shell = require('gulp-shell') gulp.task('exec-tests', shell.task([ 'tape test/* | faucet', ])); gulp.task('autotest', ['exec-tests'], function() { gulp.watch(['app/**/*.js', 'test/**/*.js'], ['exec-tests']); }); 我试过这个,看起来应该是这样的: var tape = require('tape'); var spec = require('tap-spec'); gulp.task('test', function() { return gulp.src(paths.serverTests, { read: false }) .pipe(tape.createStream()) .pipe(spec()) .pipe(process.stdout); }); 但我得到一个TypeError: Invalid non-string/buffer chunk错误

在suback / tape中使用“plan”和“end”的目的是什么?

substack的磁带testing模块允许您使用plan方法提前指定断言的数量,然后它会自动为您调用end 。 为什么不把testing结束呢? 使用plan和end什么区别?

如何testing节点数据分块function

我正在开发一个使用节点的项目,我们正在努力实现我们function的100%覆盖。 这是我们没有testing过的唯一function,而且是另一个function。 var userInput = ""; req.on("data", function(data){ userInput += data; }); 你如何去testing这个function? 我们尝试从另一个文件导出function,但没有运气。 我应该提到,我们正在使用磁带作为testing模块。

使用(substack's)磁带模块进行testing时,如何在文件中只运行一个testing?

使用磁带时如何运行特定的testing并忽略所有其他testing?