私は、日付期間のタイプに基づいて期日を計算する拡張メソッドを持っています。空の列挙型を単体テストする方法は?
public enum OffsetType
{
Months = 1,
Weeks = 2,
Days = 3
}
どのように私はOffsetType
enum
を提供(または無効に提供されていない場合ArgumentOutOfRangeException
がスローされていることを確認することができます。OffsetType列挙は、これらの値が可能
public static DateTime CalculateDueDate(this DateTime date, OffsetType offsetType, int offset)
{
switch (offsetType)
{
case OffsetType.Days:
return date.AddDays(offset);
case OffsetType.Weeks:
return date.AddWeeks(offset);
case OffsetType.Months:
return date.AddMonths(offset);
default:
throw new ArgumentOutOfRangeException("offsetType", offsetType, null);
}
}
:メソッドは次のようになります値)? OffsetType
のパラメータがnull
ではない場合、その例外のユニットテストについても心配する必要はありますか?
UPDATE:
私は複数回答に投票することができたいと思います。私はLeeとdasblinkenlightで示される範囲外の値を使うことに決めました。ここに私のフィンユニットテストは次のとおりです。
[Test]
public void CalculateDueDate_Throw_Exception_Test()
{
var date = DateTime.Now;
var period = 3;
var offsetType = (OffsetType) (-1);
Assert.Throws<ArgumentOutOfRangeException>(() => date.CalculateDueDate(offsetType, period));
}
enumsはnullにできません。値型 –