Apexユニットテスト補助関数の概要
1703 ワード
startTestとstopTestの使用
ApexのTestクラスにはstartTestとstopTestの2つの関数があります.この2つの関数はよくペアで使用されます.
各ユニットテスト関数は、1回のみ呼び出すことができます.
startTestとstopTestの間で、コード内の制限(Apex Governor Limits)が新しい計算を行います.stopTestが呼び出されるまで、ApexのGovernor LimitsはstartTestが呼び出される前から計算を続けます.
たとえば、Salesforceでの関数のSOQL呼び出し制限は100です.startTestの前に99個のSOQLが実行されている場合、startTest呼び出しの後に100個のSOQLを実行することもできます.stopTestが呼び出されると、SOQLはもう1つしか実行できません.
isRunningTest()
isRunningTest()メソッドはApexのTestクラスに存在し、現在実行されているコードがユニットテストであるかどうかをコードで検出することができる.
構文
if (Test.isRunningTest()) {
// do something
}
使用例
if (Test.isRunningTest()) {
// do something
}
public ExtensionExample(ApexPages.StandardController controller)
{
List fields = new List {'Custom_field1__c', 'Custom_field2__c'};
// , addFields()
if (!Test.isRunningTest()) {
controller.addFields(fields);
}
// , ,
// if (!Test.isRunningTest()) controller.addFields(fields);
record = (Account)controller.getRecord();
...
}