Submit Search
Upload
Sfdgr 15 20190115
•
Download as PPTX, PDF
•
2 likes
•
525 views
SFDG ROOKIES
Follow
Salesforce Developer Group ルーキー会 第15回資料
Read less
Read more
Education
Report
Share
Report
Share
1 of 29
Download now
Recommended
Sfdgr 12 20180906_v1.0
Sfdgr 12 20180906_v1.0
SFDG ROOKIES
20180619_第10回ルーキー会資料
20180619_第10回ルーキー会資料
SFDG ROOKIES
Sfdgr 13 20181120_v1.0
Sfdgr 13 20181120_v1.0
SFDG ROOKIES
Swtt2018 work shop_20181205
Swtt2018 work shop_20181205
SFDG ROOKIES
Sfdgr 07 20180320
Sfdgr 07 20180320
SFDG ROOKIES
Salesforce Developer Group ルーキー会 #08
Salesforce Developer Group ルーキー会 #08
SFDG ROOKIES
Sfdgr 09 20180524
Sfdgr 09 20180524
SFDG ROOKIES
SFDGR #5
SFDGR #5
SFDG ROOKIES
Recommended
Sfdgr 12 20180906_v1.0
Sfdgr 12 20180906_v1.0
SFDG ROOKIES
20180619_第10回ルーキー会資料
20180619_第10回ルーキー会資料
SFDG ROOKIES
Sfdgr 13 20181120_v1.0
Sfdgr 13 20181120_v1.0
SFDG ROOKIES
Swtt2018 work shop_20181205
Swtt2018 work shop_20181205
SFDG ROOKIES
Sfdgr 07 20180320
Sfdgr 07 20180320
SFDG ROOKIES
Salesforce Developer Group ルーキー会 #08
Salesforce Developer Group ルーキー会 #08
SFDG ROOKIES
Sfdgr 09 20180524
Sfdgr 09 20180524
SFDG ROOKIES
SFDGR #5
SFDGR #5
SFDG ROOKIES
SFDGR 06 20180219
SFDGR 06 20180219
SFDG ROOKIES
Sfdgr 14 20181220_v2.1
Sfdgr 14 20181220_v2.1
ssusere4be3c
SFDGR#04
SFDGR#04
Ikou Sanuki
20190809 ルーキー会 × TERAKOYAFORCE
20190809 ルーキー会 × TERAKOYAFORCE
SFDG ROOKIES
Terakoyaforce 200125 ver2
Terakoyaforce 200125 ver2
R Onigiri
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
GuildWorks
20190731ルーキー会 × TERAKOYAFORCE
20190731ルーキー会 × TERAKOYAFORCE
SFDG ROOKIES
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
SFDG ROOKIES
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
SFDG ROOKIES
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
SFDG ROOKIES
Sfdgr 11 20180725_salesforce_summer
Sfdgr 11 20180725_salesforce_summer
SFDG ROOKIES
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
More Related Content
What's hot
SFDGR 06 20180219
SFDGR 06 20180219
SFDG ROOKIES
Sfdgr 14 20181220_v2.1
Sfdgr 14 20181220_v2.1
ssusere4be3c
SFDGR#04
SFDGR#04
Ikou Sanuki
20190809 ルーキー会 × TERAKOYAFORCE
20190809 ルーキー会 × TERAKOYAFORCE
SFDG ROOKIES
Terakoyaforce 200125 ver2
Terakoyaforce 200125 ver2
R Onigiri
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
GuildWorks
What's hot
(6)
SFDGR 06 20180219
SFDGR 06 20180219
Sfdgr 14 20181220_v2.1
Sfdgr 14 20181220_v2.1
SFDGR#04
SFDGR#04
20190809 ルーキー会 × TERAKOYAFORCE
20190809 ルーキー会 × TERAKOYAFORCE
Terakoyaforce 200125 ver2
Terakoyaforce 200125 ver2
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
『企業とカイワする』というエンジニアの選択肢 〜自社サービス「カイワジョブ」立ち上げ舞台裏〜 #guildconf
More from SFDG ROOKIES
20190731ルーキー会 × TERAKOYAFORCE
20190731ルーキー会 × TERAKOYAFORCE
SFDG ROOKIES
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
SFDG ROOKIES
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
SFDG ROOKIES
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
SFDG ROOKIES
Sfdgr 11 20180725_salesforce_summer
Sfdgr 11 20180725_salesforce_summer
SFDG ROOKIES
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
More from SFDG ROOKIES
(6)
20190731ルーキー会 × TERAKOYAFORCE
20190731ルーキー会 × TERAKOYAFORCE
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Sfdgr 11 20180725_salesforce_summer
Sfdgr 11 20180725_salesforce_summer
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
Sfdgr 15 20190115
1.
Salesforce Developer Group
Rookies #15 2019/01/15(火)@株式会社フレクト
2.
本日のメニュー 2 • 19:00~19:10 ルーキー会の簡単な説明 •
19:10~19:20 自己紹介タイム • 19:20~19:35 Apexテストの基礎 • 19:35~20:40 モブプログラミング • 20:40~20:50 成果発表 • 20:50~21:00 締め&集合写真タイム • 21:00~21:30 ご歓談タイム 注意事項 会場の様子は写真に撮って公開される可能性があります。予めご了承下さい。 (顔出しNGの方がいらっしゃいましたらサッと隠れるか運営までお知らせ下さ い)
3.
今日の進行役 名前:小林 亮理(リョウスケ) 所属:株式会社フレクト :@ryosuke921186 SF歴:7年くらい 最近:そろそろ次の資格とる! 趣味:運動(ソフトテニス、ゴルフ、ジムでトレーニング)、寝る 3
4.
SFDG Rookiesの紹介 これからSalesforceを学ぶデベロッパーのコミュニティ 4
5.
運営メンバー 5 株式会社テラスカイ 讃岐 行 @i_sanuki 株式会社フレクト 齋藤 俊 株式会社テラスカイ 須山
洋輔 @suyaman_jp 株式会社フレクト 小林 亮理 @ryosuke921186 SCに 愛されたい男 Apexの神MVP テストの鬼 株式会社フレクト 川勝 基史 株式会社テラスカイ 城石 泰宏 @SHIROISHI_TS Trailblazer 見習いLv10 Cloudの 貴公子
6.
今日の参加者割合 6 人数 開発者(コードを書いてシステムを作る) システム管理者(コードを書かずにシステムを作る) その他
7.
7 SFでの 開発経験 プログラミングの経験 未経験 半年未満 1年未満
2年未満 3年以上 未経験 0 0 1 0 0 半年未満 2 0 0 0 0 1年未満 0 0 1 1 0 2年未満 0 0 0 1 0 3年以上 3 1 1 1 7
8.
8 自己紹介タイム ■Salesforceでのプログラミング経験年数 ■普段どんなことやってる? ■今日の意気込み
9.
今日のお題である 「テスト」の基本
10.
概要 Apexは通常SandboxやDE組織で行われ、完成したら本番環境にリ リースされます。ApexのフレームワークではApexクラス/トリガーが 本番リリース時にテストされ、エラーが1つもなく、かつコードカバ レッジがしきい値を超える場合のみリリースが成功します。 10 Apexクラス・ トリガー Apexテスト Sandbox/DE 本番組織 ③リリース ⑤リリース成功 ①開発 ②テスト ⑥利用 Apexクラス・ トリガー Apexテスト ④テスト
Apexクラス・ トリガー Apexテスト
11.
何のためのテスト? ① 開発したプログラムが正しく動くことの確認 ② コード修正した時のデグレの影響確認 ③
自動テストによる効率化 11 Force.comはプラットフォームとして「テストを書かないとリリースで きない」ですが、開発者がテストを書く理由はリリースのためだけでは ありません。 組織全体で75%のコードカバレッジがあり、リリース可能な状態となる
12.
Apexテストクラスの例 テストは専用のApexクラスを作成する必要があります。 12 // Accountを取り扱うレコードアクセス用クラス public class
AccountDao { // 指定したIDのAccountレコードを取得・返却するメソッド public static Account getAccountById(Id accountId) { return [ SELECT Id, Name FROM Account WHERE Id =: accountId ]; } } @isTest Private class AccountDaoTest { @isTest static void getAccountById_ok() { Account acc = new Account(); acc.Name = ‘test’; Insert acc; Test.startTest(); Account selectedAccount = AccountDao.getAccountById(acc.Id); Test.stopTest(); System.assertEquals(True, selectedAccount != null); System.assertEquals(‘test’, selectedAccount.Name); } } プロダクションコード テストコード 検証用のテストレコードを作成 テストしたいクラスを 呼び出し 想定通りに動作 しているか確認
13.
テストコードに関するお約束や心得について 13 大体の場合、テストするクラス名の前か後ろに「Test」という名前をつ けて作成。※プロジェクトや開発者によって異なる テストクラス名 アプリケーションのテストに使用するコードのみを含むクラス、および メソッドを定義する場合に使用する @isTest アノテーション 基本的にテストクラス自体が他クラスから参照されることはないため ※テスト用のユーティリティクラスなどの場合は、public にする アクセス修飾子は
private テストメソッドのルールとして static メソッドにすることstatic メソッド 明示的にここからここまでがテスト実行部分と表すために必ず使う ※startTestとstopTestは、その範囲外で行ったガバナ制限を緩和する startTest / stopTest 引数による処理分岐など、テストは1パターンだけでは終わらない ※前提条件によってもパターンはわかれる 複数のテスト
14.
テストの実行方法 リリース時を除いて、テストを実行する代表的なものについて 14 • Apex クラスメニュー –
設定メニューのApexクラス画面上の「すべてのテストを実行」 • Apex テスト実行メニュー – 設定メニューのApexテスト実行からテストクラスを選択 • 開発者コンソール – 開発者コンソールのTestメニューで実行 • クライアント型の開発ツール – VSCode、(Eclipse、Sublime Text)など • Force.com migration tool(中級者向け) – メタデータAPIを使ったテストの実行
15.
テストフレームワークの仕様 Force.com のテストフレームワークの仕様について 15 本番組織へリリースするには以下の条件をクリアする必要がある • エラーがないこと •
組織全体のApexコードに対して75%以上のカバレッジがあること • トリガーは1%以上のカバレッジがあること リリース テスト内におけるオブジェクトへの変更は、たとえDMLを実行してもコミット されません。 コミット テスト内では組織に登録済みのトランザクション系オブジェクトのレコードに はアクセスできません。また、テストクラスは、どの組織に移行しても動くよ うに作るというのが大切(ただし、例外もあり@isTest(SeeAllData=true)) レコード
16.
おさらい • Apexにはテストフレームワークがある • プロダクションコードに対して、テストコードを記述する •
テストメソッド内でプロダクションコードを実行して結果を検証する • 本番組織へリリースするには、テストのリリース条件がある • テスト内での変更は組織にコミットしない • テスト内では組織に登録済みのレコードにアクセスできない 16
17.
Let's モブプログラミング ドライバーを一人決め、それ以外はナビゲータとしてサポート
ドライバーが詰まっても、周りは優しくサポート! 疑問点があったら遠慮なく周りの人やメンターに聞いてみよう! 適度なところでドライバーを交代しよう ~20:40まで(チーム内での振り返り含めて) 17
18.
今日のお題:テストメソッド 18 お題① テストの実行方法を学ぶ お題② Assertを使って戻り値の検証 お題③
SOQLを含むメソッドのテスト お題④ 引数ありのメソッドやifの分岐 お題⑤ DML(レコード保存)のテスト お題⑥ テストの効率化(ファクトリークラス) https://drive.google.com/drive/folders/17yi6ubE9SysIKQIppKnXpvOoHRlCJloh?usp=sharing お題のクラスファイル
19.
お題① テストの実行方法を学ぶ 「rookiesNo1.cls」に対してのテストメソッドを作成してください。 ※テストクラスを作成し、テストクラスから下記メソッドを呼ぶ 値が想定通りかの検証(assert)は①では不要です。 19
20.
お題② Assertを使って戻り値の検証 「rookiesNo1.cls」に対しての戻り値も検証するテストメソッドを作 成してください。 • お題①とは別のメソッドを作成すること •
assertEqualsを利用する • 意図的にassertExceptionを発生させて、try~caatchで拾えないことも確 認しよう 20
21.
お題③ SOQLを含むメソッドのテスト 「rookiesNo3.cls」の getAccounts()をカバーするテス トメソッドを作成してください。 • テスト前にAccountを1件以上作成 する •
戻り値を受けとり検証すること 21
22.
お題④ 引数ありのメソッドやifの分岐 「rookiesNo3.cls」の getAccounts()をカバーするテスト メソッドを作成してください。 • テスト前にAccountを2件以上作成 する •
getAccountById()にあるif文の分岐 もそれぞれカバーしよう 22
23.
お題⑤ DMLのテスト 「rookiesNo5.cls」の取引先オブジェクトのレコードを作成する createAccount()をカバーするテストを作成してください。 • レコードが正しく作成されたか検証しよう •
レコードが作成されない(Nameがnull)場合のテストもしよう 23
24.
お題⑥ テストの効率化 「rookiesNo6.cls」のgetSufficientAccounts()をカバーするテストを 作成してください。 • レコード500件作成はベタで書かずTestFactoryクラスに件数を引 数で受けとるメソッドを作成して、まとめて作成できるように 24
25.
成果発表 チームごとにお願いします! ■代表者1名から※ステッカープレゼント どんな感じに進めたか(難しかったとか?) どこまで、できたか などなど ■メンターから フィードバック 25
26.
Trailblazer Community Salesforceのユーザやアドミンや開発者が集まるコミュニティ 26 • https://success.salesforce.com/_ui/ core/chatter/groups/GroupProfilePa ge?g=0F93A000000HTtr 【開発者向け】 •
Salesforce Developer Group ルーキー会 • Tokyo Salesforce Developer Group • Salesforce女子部 など 今日の勉強会レポートを書いてくれる方 大募集!
27.
お知らせ https://connpass.com/event/109851/ 日本のSalesforce コミュニティによる合同イベン ト 2019年1月26日(土) 13:00~ ウィングアーク1st
本社(六本木)
28.
DGルーキー会 次回予告 • 2月28日(木)19:00~ •
場所はアクセンチュア様@溜池山王 28
Download now