[salesforce]トライアル環境におけるテストコード
Salesforceの組織には、本番組織(プロダクト組織)、本番組織のサンドボックス、DeveloperEdition組織など色々なタイプの組織があります。この中で、本番組織にAPEXスクリプトをデプロイするにはそのAPEXスクリプトのテストコードを記述して、75%以上のテストカバー率を達成することが必要になります。この概念が理解できず最初はとまどうことが多いです。
テストコードのベストプラクティスは山ほどあるのでいつか解説するとして、今回は少し別のお話。
本番組織は、実際にお金を払って契約したSalesforce組織になりますがこの本番組織にもトライアル期間中の組織とトライアル期間後の組織という2通りのものがあります。そして、このトライアル期間中は本番組織にも関わらずテストコードを書かずにもデプロイができるようです。
ここでラッキーと思ってそのままテストコードを書かずにAPEXスクリプトをデプロイしておくと、しばらくはそのまま使い続けられるのですがトライアル期間が終了したタイミングでAPEXスクリプトが無効になり突然動作しなくなってしまいます。これは具体的には、そのAPEXスクリプトのメタXMLファイル内のactive要素がinactiveになってしまうことが原因です。
Re: Class cannot be saved inactive
これを再度有効にするためには、メタXMLファイルを上書きする必要がありそのためにはEclipseからデプロイする必要があるのですが、この時点でトライアル期限が切れているので今度はテストコードを書かないとデプロイができません。
そんな状況を突然迎えて焦らないように、常にテストコードは書くようにしましょうというお話でした。こんなケースにはまる人はそうそういないかもしれませんが。。