Apexテストクラスのエラー「TestMethod として定義されたメソッドは、getContent コールをサポートしていません。」対応
attachmentFile.Body = Test.isRunningTest() ? Blob.valueof('testString') : pr.getContent();
kinkun's blog
Apexテストクラスのエラー「TestMethod として定義されたメソッドは、getContent コールをサポートしていません。」対応
attachmentFile.Body = Test.isRunningTest() ? Blob.valueof('testString') : pr.getContent();
Apex StandardControllerテストクラス
@isTest
private class Test_testController {
static testmethod void test1() {
Account acc = new Account(
Name='テスト'
);
insert acc;
Test.startTest();
ApexPages.StandardController sc = new ApexPages.StandardController(acc);
testController testSC = new testController(sc);
PageReference pageRef = Page.testPage;
pageRef.getParameters().put('id', String.valueOf(acc.Id));
Test.setCurrentPage(pageRef);
testSC.testMethod();
Test.stopTest();
}
}
項目一括作成
シナリオとして、取引先のカスタム項目をカスタムオブジェクトに一括コピーする。
手順
・組織のソースファイルを持ったvscodeのターミナルに下記コードを入力して実行する。実装すると、ソースファイルがメタデータに変換され、メタデータのフォルダとその下にファイルが新たに作成される。
sfdx force:source:convert
・作成したメタデータのコードをコピーして、作成したいカスタム項目のコードを追加する。
・ターミナルに下記コードを入力したら実行してメタデータをソースファイルに再変換する。
sfdx force:mdapi:convert -r メタデータフォルダパス
例えば、
sfdx force:mdapi:convert -r metadataPackage_1234567890123
・対象のファイルをデプロイすると、環境にカスタム項目が一括で作成される。
ただ、別途項目レベルセキュリティの設定が必要である。
SetのaddAllメソッド
Set<String> myString = new Set<String>{'a', 'b'};
Set<String> sString = new Set<String>{'c'};
Boolean result1 = myString.addAll(sString);
system.debug('myString:'+myString);
System.assertEquals(true, result1);
結果
myString:{a, b, c}
半角英数字のみ許可する入力規則
NOT( REGEX( test__c , "^[0-9a-zA-Z]*$") )
デフォルト項目設定
以下のタイプのカスタム項目にデフォルト項目値を設定できます。
"会社:" & BR() &
"備考:" & BR() &
"URL:"
Visualforceのfooter
<apex:page renderAs="pdf">
<head>
<style>
@page{
size: 8.27in 11.69in;
@bottom-center {
content: element(footer);
}
}
body {
font-family: Arial Unicode MS;font-size: 11pt;
}
div.footer {
display: block;
padding: 10px;
position: running(footer);
}
</style>
</head>
<apex:outputPanel >
<body>
<div class="footer" name="footer">
<p>Footer</p>
</div>
</body>
</apex:outputPanel>
</apex:page>
項目のラベルを取得する方法
Apex
//方法A
Schema.SObjectType.Account.fields.Name.label;
//方法B
Schema.getGlobalDescribe().get('Account').getDescribe().fields.getMap().get('Name').getDescribe().getLabel();
VF
<apex:outputText value="{!$ObjectType.Account.Fields.Name.Label}" />
Excelで重複した行を削除する方法
セルを選択する
重複の削除を選択する
文字列バイト数計算
Blob.valueOf(strings).size();
実行結果
strings:7
1234567890:30