こんにちは、管理人の@Salesforce.Zです。
開発時に、新規ソースを作成する際に、構成があれば、もっと便利でしょう
Sublime Text3とMavensMateでやる時に自動的に出てくるが
最近、VS Codeでやっている、新規ソースを作成時にちょっとめんどくさい、テンプレートが自動生成しない
そこで、テンプレートをここでメモします。
使えそうと思ったら、使ってください。
目次
各種テンプレート
VFページ
<apex:page id="pgid" docType="html-5.0"> <head> <title>page title</title> <!-- CSS 静的リソース インストール--> <!-- NOT Zip リソースの例 --> <apex:stylesheet value="/resources/htdocs/css/basic.css"/> <!-- Zip リソースの例 --> <apex:stylesheet value="{!URLFOR($Resource.StyleZip, 'basic.css')}"/> <!-- js 静的リソース インストール--> <apex:includeScript value="{!$Resource.example_js}"/> <!-- CSS --> <style type="text/css"> </style> <!--JavaScript--> <script type="text/javascript"> </script> </head> <body> <apex:pageMessages id="msgId"/> <apex:form id="formid"> </apex:form> </body> </apex:page>
APEXクラス
クラスで with sharing または without sharing キーワードを使用して、共有ルールを適用するかどうかを指定します。
Apex クラスで inherited sharing キーワードを使用して、そのコール元のクラスの共有モードでクラスを実行します。
With Sharingクラス
現在のユーザに適用されている共有ルールを強制実行するには、クラスの宣言時に with sharing キーワードを使用します。次に例を示します。
public with sharing class myOuterClass { // Additional myOuterClass code here class myInnerClass { // myInnerClass code here } }
Without Sharingクラス
現在のユーザに適用されている共有ルールを強制実行されないようにするには、クラスの宣言時に without sharing キーワードを使用します。たとえば、クラスが with sharing を使用して宣言された別のクラスからコールされた場合、共有ルールの強制実行を明示的にオフにできます。
public without sharing class myOuterClass { // Additional myOuterClass code here class myInnerClass { // myInnerClass code here } }
with sharing も without sharing も宣言しないクラス
with sharing も without sharing もクラスで宣言されていない場合、現在の共有ルールが有効となります。そのため、クラスが別のクラスから共有ルールを取得する場合を除き、共有ルールは強制実行されません。たとえば、共有が強制実行されている別のクラスからクラスがコールされた場合、コールされたクラスにも共有が強制実行されます。
public class myOuterClass { // Additional myOuterClass code here class myInnerClass { // myInnerClass code here } }
テストクラス
Apexテストコード作成の落とし穴より Test.startTest();とTest.stopTest();のブロック内にテスト内容を記載するメリットを確認しましょう。
@isTest private class HelloWorldTestClass { static testMethod void validateHelloWorld() { // テスト準備(データ用意、テストユーザ用意など) System.RunAs(testuser){ Test.startTest(); //テストしたい内容を記載 Test.stopTest(); //テスト期待値を検証 System.assertEquals('期待値', '実の値'); } } }