注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
評価スイートが実行されると、各テストケースのロジック関数が実行されます。オントロジー編集(オブジェクトの作成、編集、削除など)を含む関数の場合、各テストケースはオントロジーシミュレーションで実行されます。これにより、テストおよび評価中に実際のオントロジーが変更されないようにします。
オントロジー編集を行う AIP ロジック関数の場合、ユーザーは TypeScript でカスタム評価関数を構成する必要があります。Evaluations アプリケーションで評価関数を追加する際に、Code Repositories で関数を作成するか、既存の公開された関数を選択するよう求められます。以下のガイドを参考に、さまざまなオントロジー編集を探求し、それらの評価に TypeScript 関数を効果的に使用する方法を学びましょう。
オントロジー編集がオブジェクトの作成を含む場合、作成されたオブジェクトはシミュレーションされたオントロジーにのみ存在します。そのため、これらの作成されたオブジェクトはテストケースのパラメーターとして直接渡すことはできません。代わりに、識別可能なプロパティを使用して検索し、そのプロパティをチェックします。
@Function()
public async checkTicketWasCreated(
expectedRequester: string, // 期待されるリクエスター
expectedDate: LocalDate, // 期待される日付
expectedClassification: string, // 期待される分類
): Promise<boolean> {
const matches = Objects.search().supportTicket()
.filter(ticket => ticket.ticketRequester.exactMatch(expectedRequester)) // リクエスターが一致するかフィルタリング
.filter(ticket => ticket.ticketCreationDate.exactMatch(expectedDate)) // 作成日が一致するかフィルタリング
.all(); // すべての一致するチケットを取得
if (matches.length !== 1) {
return false; // 一致するチケットが1つでない場合はfalseを返す
}
return matches[0].classification === expectedClassification; // 分類が一致するかどうかを確認
}
オブジェクト編集出力タイプの場合、編集されたオブジェクトはすでに実際のオントロジーに存在しています。シミュレートされたオントロジーでは、それを直接関数に渡してプロパティを確認できます。以下の例をご覧ください。
@Function()
public checkTicketClassification(
ticket: SupportTicket, // サポートチケットオブジェクト
expectedClassification: string, // 期待される分類
): boolean {
return ticket.classification === expectedClassification; // チケットの分類が期待される分類と一致するかをチェック
}
オントロジー編集でオブジェクトの削除が関わる場合、そのオブジェクトはシミュレートされたオントロジー内で削除されるため、評価関数に渡すことはできません。オブジェクトが実際に削除されたことを確認するには、オブジェクトの識別可能なプロパティを渡し、それが存在しないことを確認するために検索します。
@Function()
public async checkTicketWasDeleted(ticketId: string): Promise<boolean> {
// 指定されたチケットIDが削除されたかどうかを確認する非同期関数
const count = await Objects.search().supportTicket()
.filter(ticket => ticket.ticketId.exactMatch(ticketId))
// 指定されたチケットIDと完全一致するチケットの数をカウントする
.count();
// カウントが0であればチケットは削除されたと判断する
return count === 0;
}