Javascript 如何测试节点数据分块功能
我正在做一个使用node的项目,我们正在努力实现100%的功能覆盖率。这是我们唯一没有测试的函数,它在另一个函数中Javascript 如何测试节点数据分块功能,javascript,node.js,testing,tdd,node.js-tape,Javascript,Node.js,Testing,Tdd,Node.js Tape,我正在做一个使用node的项目,我们正在努力实现100%的功能覆盖率。这是我们唯一没有测试的函数,它在另一个函数中 var userInput = ""; req.on("data", function(data){ userInput += data; }); 如何测试这个函数?我们尝试从另一个文件导出函数,但没有成功 我应该提到,我们使用磁带作为测试模块 您需要在req上触发此“数据”事件。以便调用此回调 例如,假设您在测试中有req,您可以这样做(这是摩卡咖
var userInput = "";
req.on("data", function(data){
userInput += data;
});
如何测试这个函数?我们尝试从另一个文件导出函数,但没有成功
我应该提到,我们使用磁带作为测试模块 您需要在req上触发此“数据”事件。以便调用此回调
例如,假设您在测试中有req
,您可以这样做(这是摩卡咖啡):
req.emit('data',{sampleData:'ErrorOrRightSampleDatahere'})
应该这样做。
当实例化http
或因此而实例化req
对象时,请确保实例化一个新对象,其他测试不会收到此事件
更完整地说
var assert = require('assert')
function test() {
var hasBeenCalledAtLeastOnce = false
var userInput = "";
// req must be defined somewhere though
req.on("data", function(data){
userInput += data;
if(hasBeenCalledAtLeastOnce) {
assert.equal(userInput, "HelloWorld", "userInput is in fact 'HelloWorld'")
}
hasBeenCalledAtLeastOnce = true
});
req.emit('data', "Hello")
req.emit('data', "World")
}
test()
我应该提到我用磁带来测试。你认为它会以类似的方式工作吗?是的,我认为会。你能测试一下吗:
req.emit('data','sampleData');log(用户输入)
并查看它是否打印“sampleData”-否则请尝试@eljefedelrodeljefe的建议
var assert = require('assert')
function test() {
var hasBeenCalledAtLeastOnce = false
var userInput = "";
// req must be defined somewhere though
req.on("data", function(data){
userInput += data;
if(hasBeenCalledAtLeastOnce) {
assert.equal(userInput, "HelloWorld", "userInput is in fact 'HelloWorld'")
}
hasBeenCalledAtLeastOnce = true
});
req.emit('data', "Hello")
req.emit('data', "World")
}
test()