在JavaScript中测试一个无效参数w/Chai
Testing an invalid argument w/ Chai in JavaScript
前言:上周我开始修改JavaScript,所以这可能是一个愚蠢的问题,也可能不是(尽管我会打赌前者)。
我创建这个方法是为了返回一周中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; } };
我已经设置了一个测试类来测试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 /
相关文章:
- jQuery"焦点”;在一个实例中有效,但在其他实例中无效
- 未捕获的无效值错误:initMap 不是一个函数
- 如何在一个代码中检查无效的日期格式和超过18年的有效期
- 在JavaScript中测试一个无效参数w/Chai
- Javascript——为什么一个document.getElementById()有效,而另一个无效
- backbone.js抛出无效对象初始值设定项错误,这是一个非常简单的错误
- FineUploader 批量上传一个无效对象
- 未捕获的无效值错误:initAutocomplete 不是一个函数
- JavaScript 方法一个有效,另一个无效
- JQuery - Parsexml:一个页面上的有效xml,另一个页面上无效的xml,两个页面上的相同xml
- 为什么 ( obj['arr'] || obj['arr'] = [] ).push(5);给我一个“作业中的左侧无效”
- 如何创建一个在创建时可能无效的主干模型
- 在比较两个值时,JavaScript似乎评估了一个无效的结果
- Javascript:函数-返回一个对象将使this.variable无效
- 如果选中一个复选框,则选中所有复选框无效
- getElementById在一个环境中有效,但在另一个环境下无效
- 有人能告诉我为什么其中一个有效,另一个无效吗
- 为什么这个js幻灯片在一个安装上有效,而在另一个安装中无效
- gap.client.load未调用回调:在console.log中指定了一个无效或非法的字符串
- 当输入被声明为无效时,在React中添加一个复选框