次の方法で共有


承認テスト ライブラリに関するよく寄せられる質問

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

どの Fluent な接頭辞を使用しますか: set、for、with

Fluent メソッドを追加するクラスにより、異なるルールが適用されます:

エンティティまたは作成者クラスを実装する必要があるか

ほとんどのエンティティに対して、エンティティ クラスを作成する作業は作成者クラスを作成する作業と同じです。 したがって、エンティティ クラスを作成します。 ただし、場合によっては、エンティティを作成するプロセスは簡単ではありません。 良い例は品目エンティティです。 Item エンティティを構成するテーブルは 10 個を超えるため、エンティティ クラスを作成するのは困難です。 テスト ケースで既存の項目を更新する必要がほとんどないため、作成者クラスを用意するだけでも問題ありません。これは実装がはるかに簡単です。

連鎖 Fluent セッターの順番は重要か

ほとんどの場合、連鎖 Fluent セッターの順番は問題になりません。 ただし、セッター メソッドが呼び出されたときにデフォルト設定がされます。 したがって、メソッドの順序を変更すると、異なる結果になる場合があります。 販売ラインの例を次に示します。

オプション 1

salesLine.setQuantity(10).setUnitPrice(100).setAmount(2000).save()

このオプションでは、金額が最後に設定されるため、金額が 2,000 に等しい販売ラインが生成されます。

オプション 2

salesLine.setAmount(2000).setQuantity(10).setUnitPrice(100).save()

このオプションでは、単価を設定した後、既定で数量×価格に設定されるため、金額が 1,000 である販売ラインが生成されます。

空のデータセットで実行するテストに ATL を使用できるか

空のデータ セットで受け入れテスト ライブラリ (ATL) を問題なく使用できます。 前提条件の自動セットアップは、必要に応じて行われます。 たとえば、請求書転記の前提条件は、 salesOrder.postInvoice()の最初の呼び出し時にのみ設定されます。 詳細については 確認 を参照してください。

パフォーマンスを向上させるには、テスト クラス内の複数のテストで請求書を転記する必要がある場合は、Ensure メソッドで setUpTestCase メソッドを呼び出します。

単体テストで ATL を使用できるか

ATL は、主に統合テストとコンポーネント テストでのデータのセットアップと検証に使用します。 ただし、場合によっては、単体テストにも使用できます。

単体テストおよびコンポーネント テストで ATL を使用することに注意が必要な理由

Sales order などの一部のより複雑なエンティティでは、ATL は、 modifiedFieldinsert、および update イベントに関連付けられているすべてのビジネス ロジックを呼び出します。 たとえば、ATL では、請求書トランザクションを作成する実際の請求書転記ロジックが実行されます。 そのため、一部の操作のパフォーマンスが低下します。 ただし、これらの問題は、マスター データを表すほとんどのエンティティでは発生しません。 そのため、任意の種類のテストでこれらのエンティティを使用できます。

仕様とクエリを使用して検証を行う場合、大きなオーバーヘッドは発生しません。 単体テストでこれらの成果物を使用することもできます。