在 JavaScript 中使用 Chai 测试无效参数
Testing an invalid argument w/ Chai in JavaScript
前言: 上周我开始修补 JavaScript,所以这可能是也可能不是一个愚蠢的问题(尽管我打赌前者)。
我创建此方法是为了 return 星期几 getDayOfTheWeekFromDate
使用 Date()
初始化。我正在尝试使用 chai
创建一个测试,以查看在输入虚假参数(如字符串)时它会做什么。
两个问题:
- 我检查的类型正确吗?
我如何用 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;
}
};
我已经设置了测试 class 来测试日期助手 class。
'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,所以这可能是也可能不是一个愚蠢的问题(尽管我打赌前者)。
我创建此方法是为了 return 星期几 getDayOfTheWeekFromDate
使用 Date()
初始化。我正在尝试使用 chai
创建一个测试,以查看在输入虚假参数(如字符串)时它会做什么。
两个问题:
- 我检查的类型正确吗?
我如何用
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; } };
我已经设置了测试 class 来测试日期助手 class。
'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 /