mablでの日付の操作

テスト目標に特定の形式の日付の使用が含まれている場合、JavaScriptスニペットの使用を検討してください。このガイドでは、GetDateComponents.jsスニペットの概要を示します。このスニペットは、今日の日付に該当する値から成るオブジェクトを返します。このオブジェクトをさらに変更して、特定の形式で日付を作成したり、他の日付を生成したりすることができます (「昨日」や「今日から2週間後」など)。

995

スニペットエディターでのGetDateComponentsの実行

このガイドでは、次の内容を学習できます。

  • GetDateComponentsスニペットの仕組み
  • ブラウザーテストでこのスニペットを使用する方法

仕組み

スニペットの出力

GetDateComponentsスニペットは、日、月、年、曜日、時の値から成るオブジェクトを返します。GetDateComponentsスニペットの出力例を次のコードブロックに示します。

{
    "dayNumeric": "14",
    "dayTwoDigit": "14",
    "dayOrdinal": "14th",
    "monthNumeric": "9",
    "monthTwoDigit": "09",
    "monthNarrow": "S",
    "monthShort": "Sep",
    "monthLong": "September",
    "yearNumeric": "2022",
    "yearTwoDigit": "22",
    "weekdayNarrow": "W",
    "weekdayShort": "Wed",
    "weekdayLong": "Wednesday",
    "hour12TwoDigit": "10",
    "hour24TwoDigit": "10",
    "hour12Numeric": "10",
    "hour24Numeric": "10",
    "dayPeriod": "AM",
    "minute": "23",
    "second": "49"
}

特に変更しない場合、GetDateComponentsスニペットは現在の日付に該当する値を返します。返す必要のある値が現在の日付のみの場合は、テストでのこのスニペットの使用方法を説明するセクションにスキップしても構いません。

別の日付を返す場合や、タイムゾーンを調整する場合は、後続の説明をお読みください。

他の日付を返す方法

GetDateComponentsスニペットには、次の日付に該当する値を返すことができるカスタムメソッドが含まれています。

  • 明日: today.addDays(1)
  • 昨日: today.addDays(-1)
  • 前の日曜日: today.getPreviousWeekday("sunday")
  • 次の金曜日: today.getPreviousWeekday("friday").addDays(7)
  • 1か月前: today.addMonths(-1)
  • 1年後: today.addYears(1)

これらのカスタムメソッドは、変更と連結が可能です。たとえば、today.getPreviousWeekday("monday").addDays(7).addMonths(2)というメソッドは、次の月曜日から2か月後の日付の値を返します。

次の例では、既存のスニペットが更新され、翌日の日付に該当する値をオブジェクトとして返します。

  1. date = today;の前に//を追加してコメントアウトします。
  2. date = today.addDays(1);の前の//を削除します。
  3. [Run] をクリックして結果を確認します。翌日の日付に該当する値が表示されます。

特定の日付を返す方法

GetDateComponentsスニペットに次の2つの変更を加えることにより、特定の日付に該当する値を返すことができます。

  • 値として特定の日付を持つinput_dateなどのパラメーターを追加します。パラメーターの値は、Date() コンストラクターによって解析可能な値であることが必要です。
  • dateコンストラクターにパラメーターとしてinput_dateパラメーターを追加します。var today = new Date(input_date)

次の例では、スニペットは1951年9月12日に該当する値を返します。

タイムゾーンの調整

デフォルトでは、timezone変数は空文字列です。let timezone = "";

特定のタイムゾーンの日付値を返すには、timezone変数を目的のタイムゾーンに更新します。

たとえば、シドニーのタイムゾーンで日付値を返すには、let timezone = "Australia/Sydney";と指定します。

使用方法

mabl TrainerでGetDateComponentsスニペットを使用するには、次の2つの手順が必要です。

  1. 出力を変数に保存する
  2. 日付変数を使用して新しい変数を作成する

変数への出力の保存

  1. Trainerウィンドウの下にある {x} 変数ボタンをクリックします。
  2. [Create a new variable] を選択します。
  3. 変数のソースを [JavaScript] に設定します。
  4. ワークスペースにこのスニペットがない場合は、[New] ボタンをクリックし、GetDateComponentsスニペット全体をコードエディターに貼り付け、スニペットを保存します。
  5. ワークスペースにこのスニペットがある場合は、スニペットドロップダウンから選択します。
  6. 変数に名前を付けます。
  7. [OK] をクリックします。

たとえば、次のように、現在の日付の出力を "today" という変数に保存できます。

特定の形式の日付の作成

GetDateComponents変数の値を使用して、特定の形式の日付を持つ新しい変数を作成できます。

たとえば、次の変数は、"today" 変数の値を使用して、現在の日付をmm/dd/yyyy形式で生成します。

  1. Trainerウィンドウの下にある {x} 変数ボタンをクリックします。
  2. [Create a new variable] を選択します。
  3. ソースとして [String template] を設定します。
  4. 文字列テンプレートを次の構文で記述します。{{@today.monthTwoDigit}}/{{@today.dayTwoDigit}}/{{@today.yearNumeric}}

  1. 変数に名前を付けます。
  2. [OK] をクリックします。

"today" 変数を使用した他の例をいくつか紹介します。

構文
{{@today.weedkayLong}}, {{@today.monthLong}} {{@today.dayNumeric}}, {{@today.yearNumeric}}Wednesday, September 7, 2022
{{@today.hour12TwoDigit}}:{{@today.minute}} {{@today.dayPeriod}}10:23 AM
{{@today.monthShort}}-{{@today.dayTwoDigit}}-{{@today.yearTwoDigit}}Sep-07-22

次のステップ

日付変数を目的の形式で作成した後、その変数を使用して、アプリケーション内で日付をアサートし、日付の値を入力することができます。