如何在 node.js 中为给定的示例数据创建测试用例?

Posted

技术标签:

【中文标题】如何在 node.js 中为给定的示例数据创建测试用例?【英文标题】:How do I create test cases for given sample data in node.js? 【发布时间】:2020-10-14 22:50:03 【问题描述】:

我是donghackerrank测试。我的代码通过提供输入来提供所需的输出,但测试表明这是一个错误的答案。测试链接为https://www.hackerrank.com/contests/fullstack/challenges/testrun

输入格式

1 2 3

输出格式

2 3 7

示例输入

1 9 9

样本输出

? ? ?

解释

function processData(input) 
//Enter your code here
var number;
var main = "";
const aray = input.split(' ').map(Number)
for (var i = 0; i < aray.length; i++) 
        if (i === aray.length-1 && aray.length>1) 
            if (aray[i]*2 + 1 >= 9) 
            main += '?';
            
            else 
            main += aray[i]*2 + 1
            
        
        else 
            if (aray[i+1] >= 9) 
            main += '?';
            main += ' '        
            
            else 
            main += aray[i] + 1;
            main += ' '    

            
        
    
console.log(main); 


process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = '';
process.stdin.on("data", function (input) 
_input += input;
);

process.stdin.on("end", function () 
processData(_input);
);

如何创建测试用例?如果您知道,请指出错误。谢谢

【问题讨论】:

到底是什么问题?解决方案有什么要求? @eol 我的代码通过提供输入来提供所需的输出,但测试表明这是一个错误的答案。通过使用 1 2 3 的输入值,它显示 2 3 7 的输出,通过使用 1 9 9 的输入值,它显示 ? 的输出? ?.它满足要求,但结果显示它是一个错误的答案 你能发一下hackerrank挑战的链接吗? @eol hackerrank.com/contests/fullstack/challenges/testrun 链接失效了。 【参考方案1】:

如果你只是想测试一堆输入,那就写一堆不同类型输入的函数调用。

例子:

processData([1, 2, 3]);
processData([4, 5, 6]);
processData([2, 2, 2]);
processData(["1", "2", "3"]);
// More tests here

如果您想自动向您的应用程序提供输入,那么robotjs 之类的内容可能会很有用。

如果您正在寻找一个完整的测试框架,那么您可以使用 mocha 和 chai。这是一个article,关于如何将它们与节点一起使用。

【讨论】:

以上是关于如何在 node.js 中为给定的示例数据创建测试用例?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sequelize/Node JS 中为数据类型 TIME 发送数据

如何在Node.js的回调中正确测试代码?

在 node.js 中为现有对象创建一个新的键和/或数组

如何在python中为相同的并行机器创建甘特图?

如何在 Cpanel 中为 Node.js 应用程序配置端口?

如何在node.js中为对象动态添加属性?