問題
Apex単体テストの適切なプロセスは何ですか。
- SeeAllData=trueを使用してテストデータをクエリします。テストするメソッドを呼び出します。結果が正しいことを確認します。
- テスト用のデータを作成します。runAllTests()を実行します。結果が正しいことを確認します。
- テスト用のデータを作成します。テストするメソッドを呼び出します。結果が正しいことを確認します。
- SeeAllData=trueを使用してテストデータをクエリします。runAllTests()を実行します。結果が正しいことを確認します。
正解
- SeeAllData=trueを使用してテストデータをクエリします。テストするメソッドを呼び出します。結果が正しいことを確認します。
- テスト用のデータを作成します。runAllTests()を実行します。結果が正しいことを確認します。
- テスト用のデータを作成します。テストするメソッドを呼び出します。結果が正しいことを確認します。
- SeeAllData=trueを使用してテストデータをクエリします。runAllTests()を実行します。結果が正しいことを確認します。
解説
それぞれの選択肢の理由について説明します。
□ SeeAllData=trueを使用してテストデータをクエリします。テストするメソッドを呼び出します。結果が正しいことを確認します。
これは不正解です。SeeAllData=true
を使用すると、テスト実行中に実際の組織データにアクセスすることができます。しかし、これは一般的なベストプラクティスではありません。テストは独立しており、実データに依存しない形で行うべきです。
□ テスト用のデータを作成します。runAllTests()を実行します。結果が正しいことを確認します。
これは不正解です。SalesforceにrunAllTests()
というメソッドは存在しません。一方、Salesforceの開発者コンソールのテストタブには「Run All (すべて実行)」というオプションがあり、これを利用することで保存されているすべてのテストメソッドを実行することが可能です。
□ テスト用のデータを作成します。テストするメソッドを呼び出します。結果が正しいことを確認します。
これは正解です。単体テストのベストプラクティスは、テスト内でテストデータを作成し、それを使用してメソッドをテストし、結果を確認することです。この選択肢はそのプロセスを正確に反映しています。
□ SeeAllData=trueを使用してテストデータをクエリします。runAllTests()を実行します。結果が正しいことを確認します。
これは不正解です。SalesforceにrunAllTests()
というメソッドは存在しない上、通常SeeAllData=true
の使用は避けるべきです。
コメント