0
はじめに:先週、私はJavaScriptで微調整を開始したので、これは愚かな疑問であるかもしれません(私は前者を賭けるでしょう)。JavaScriptで無効な引数を調べる
getDayOfTheWeekFromDate
がDate()
で初期化された曜日を返すようにこのメソッドを作成しました。私はchai
でテストを作成して、偽の引数(文字列のようなもの)が与えられたときの動作を確認しようとしています。
つの質問:
- 私が正しくタイプをチェックしていますか?
getDayOfTheWeekFromDate
の偽の引数をchai
でテストするにはどうすればよいですか?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; } };
私は日付のヘルパークラスをテストするために設定したテストクラスを持っています。
'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;
});
});
ありがとうございました!私のリンターはそれを選んでいませんでした。優れた目!私が作成した方法は健全で、それは規則に従っていますか? – Adrian
@AdrianB私は個人的に、 'else'と' default'ブランチのラッピングを削除し、関数の最後の行としてfall-through 'return;'を持っています。 – zerkms