オントロジーファンクションユニットテストモックユーザーとグループ

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

モックユーザーとグループ

ユーザーモック

createUserを使用して、idusername以外のすべてのプロパティがオプションのユーザーの部分的なモックを作成することができます。"@foundry/functions-testing-lib"から{ createUser }をインポートする必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 // ".."からMyFunctionsをインポートします import { MyFunctions } from ".." // "@foundry/functions-testing-lib"からverifyOntologyEditFunction、createGroup、createUserをインポートします import { verifyOntologyEditFunction, createGroup, createUser } from "@foundry/functions-testing-lib"; // テストスイートを説明します describe("example test suite", () => { // MyFunctionsの新しいインスタンスを作成します const myFunctions = new MyFunctions(); // "test users and groups"という名前のテストを非同期で行います test("test users and groups", async () => { // IDが"groupId"のグループを作成します const group = createGroup({ id: "groupId", }); // IDが"userId"でユーザ名が"username"のユーザーを作成します const user = createUser({ id: "userId", username: "username", }); // myFunctions.searchUsers("userId", "groupId")がuserとgroupに等しいことを期待します await expect(myFunctions.searchUsers("userId", "groupId")).resolves.toEqual([user, group]); }); });

次の関数をテストするために使用できます:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // "@foundry/functions-api"から必要なモジュールをインポートします。 import { Function, OntologyEditFunction, Users, Group, Principal } from "@foundry/functions-api"; // MyFunctionsクラスをエクスポートします。 export class MyFunctions { // Functionデコレータを使用して、searchUsers関数を定義します。この関数は、指定されたuserIdとgroupIdを使用してユーザーを検索します。 @Function() public async searchUsers(userId: string, groupId: string): Promise<Principal[]> { // UsersモジュールのgetUserByIdAsyncメソッドとgetGroupByIdAsyncメソッドを使用して、指定されたuserIdとgroupIdに対応するユーザーとグループを取得します。 const existingPrincipals = await Promise.all([ Users.getUserByIdAsync(userId), Users.getGroupByIdAsync(groupId), ]); // 取得したユーザーとグループをフィルタリングし、nullやundefinedを除外します。その後、結果をマッピングして返します。 return existingPrincipals.filter(r => !!r).map(r => r!); } }

グループモックの作成

createGroupを使用すると、id以外のすべてのプロパティがオプションのグループの部分的なモックを作成することも可能です。{ createGroup }"@foundry/functions-testing-lib"からインポートする必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import { MyFunctions } from ".." // 関数をインポート import { verifyOntologyEditFunction, createGroup } from "@foundry/functions-testing-lib"; // テストスイートの例を説明します describe("example test suite", () => { const myFunctions = new MyFunctions(); // テストグループのテスト test("test groups", async () => { // グループを作成します const group = createGroup({ id: "groupId", }); // グループIDで検索し、結果が一致することを期待します await expect(myFunctions.searchGroups("groupId")).resolves.toEqual([group]); }); });

次の関数のテストに使用することができます:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 import { Function, OntologyEditFunction, Users, Group, Principal } from "@foundry/functions-api"; export class MyFunctions { // グループ検索関数 (引数: グループID) @Function() public async searchGroups(groupId: string): Promise<Principal[]> { // グループ情報を取得 const existingPrincipals = await Promise.all([ Users.getGroupByIdAsync(groupId), ]); // 結果をフィルタリングして返す return existingPrincipals.filter(r => !!r).map(r => r!); } }