js中的一条测试用例在调用主函数时,总是返回undefined

测试函数

let sinon = require("sinon");
let main = require("../lib/main");

describe('main()', () => {

    it('should display main menu once started', () => {
        sinon.spy(console, 'log');
        main();
        expect(console.log.args.join()).toBe(`1. 添加学生
2. 生成成绩单
3. 退出
请输入你的选择(1~3):`);
    });

    it('should display 请输入学生信息(格式:姓名, 学号, 民族, 班级, 学科: 成绩, ...)', () => {
        // sinon.spy(console, 'log');
        const display = main();
        // console.log(display)
        expect(display).toBe('请输入学生信息(格式:姓名, 学号, 民族, 班级, 学科: 成绩, ...),按回车提交:')
    }) 

});

被测函数

module.exports = () => {
    function choice1(){
        let display = '请输入学生信息(格式:姓名, 学号, 民族, 班级, 学科: 成绩, ...),按回车提交:'
        return display;
    }
    function choice2(){
    
    }
    function choice3(){
    
    }
    function invalidInput1(){
    
    }
    function defaultPage(){
        console.log( `1. 添加学生
2. 生成成绩单
3. 退出
请输入你的选择(1~3):`)
    }

    defaultPage();
    var readlineSync = require('readline-sync');
    var answer = readlineSync.question();
    if(answer == 1){
        choice1();
    }else if(answer == 2){
        choice2();
    }else if(answer == 3){
        choice3();
    }else{
        return 'Bad choice, please choose again!'
    }
}

运行结果

clipboard.png

阅读 1.4k
1 个回答
if(answer == 1){ return choice1(); }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题