javascript - 在 JavaScript 中使用 Chai 测试无效参数

标签 javascript node.js testing chai

前言:上周我开始研究 JavaScript,所以这可能是也可能不是一个愚蠢的问题(尽管我敢打赌前者)。

getDayOfTheWeekFromDate 使用 Date() 初始化时,我创建此方法以返回星期几。我正在尝试使用 chai 创建一个测试,以查看在输入虚假参数(如字符串)时它会做什么。

两个问题:

  1. 我检查的类型是否正确?
  2. 我如何使用 chai 测试 getDayOfTheWeekFromDate 的虚假参数?

    DateHelper.prototype.getDayOfTheWeekFromDate = function(inputDate) {
        if (inputDate instanceof Date) {
            inputDate = new Date();
            var dayOfTheWeek = inputDate.getDay();
    
            switch(dayOfTheWeek) {
                case 0: return "Sunday";
                case 1: return "Monday";
                case 2: return "Tuesday";
                case 3: return "Wednesday";
                case 4: return "Thursday";
                case 5: return "Friday";
                case 6: return "Saturday";
                default: return;
            }
        } else {
            // I'm shooting for doing nothing if the input isn't a Date()
            // How would I test this?
            return;
        }
    };
    

我已经设置了一个测试类来测试 Date 助手类。

'use strict';
var chai = require('chai');
var expect = chai.expect;
var DateHelper = require('../date_helper');
chai.config.includeStack = true; // true enables stack trace

describe('DateHelper', function() {

    context('With a valid date value, getDayOfTheWeekFromDate', function() {
        it('should return Tuesday', function() {
            expect(subject.getDayOfTheWeekFromDate(new Date())).to.eq('Tuesday');
        });
    });
});

我试过了,但是当我给初始值设定项一个字符串时控制台假发了,不知道什么是未定义的。我应该在这里测试什么?:

context('With a invalid date value, getDayOfTheWeekFromDate', function() {
    it('should return nothing', function() {
        expect(subject.getDayOfTheWeekFromDate('bogusArgument').to.be.undefined;
    });
});

最佳答案

如果所有的括号都平衡的话,它会工作得很好:

expect(subject.getDayOfTheWeekFromDate('bogusArgument')).to.be.undefined;
                            //                         ^
                            //    this one was missing /

关于javascript - 在 JavaScript 中使用 Chai 测试无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733299/

相关文章:

javascript - 为什么下划线不使用 typeof 来检测函数?

javascript - 如何使用 js 和 css 制作动画 blob 按钮?

javascript - mysql 没有加入数据

javascript - Angular http post 数据对象没有被 Node 服务器视为对象

node.js - Model.find() 在 Mongoose 中返回空

java - 使用@Autowired 注释测试注入(inject) bean

javascript - Protractor + Angular 误差 - 元素在点处不可点击

javascript - 使用 javascript 在 HTML 中显示 XML 数据

node.js - Google BigQuery 足以存储财务报表吗?

c# - 测试公共(public)交通消费者