簡體   English   中英

在JavaScript中使用Chai測試無效的參數

[英]Testing an invalid argument w/ Chai in JavaScript

前言:上周,我開始修改JavaScript,因此這可能是(也可能不是)一個愚蠢的問題(盡管我會押注前者)。

我創建了此方法,以使用Date()初始化getDayOfTheWeekFromDate時返回星期幾。 我正在嘗試使用chai創建一個測試,以了解它在輸入偽造的參數(如字符串)時會做什么。

兩個問題:

  1. 我是否正確檢查類型?
  2. 我將如何使用chaigetDayOfTheWeekFromDate測試偽造的參數?

     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');
        });
    });
});

我試過了,但是當我向初始化器輸入一個字符串時,控制台會顯示出來,但不知道undefined是什么。 我應該在這里測試什么?

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 /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM