実際にVRChatのAPIを叩くサンプルプロジェクトを作って試してみた。}}DI無しの場合はこのようにコンストラクタ内でVRChatのAPIを扱うためのクラスVrcApiをインスタンス化することになる。この場合、ユニットテストの際も常にVRChatAPI本番環境に直接通信を行うようになってしまう。}}DI有りの場合、上記のように抽象クラスであるAbstractVrcApiのインスタンスをコンストラクタの引数として受け取るようにしている。});});このように、ユニットテストする際にモッククラスであるVrcApiMockのインスタンスを渡すことで、ユニットテスト時にモックサーバー等への通信によるテストを行うことが出来る。forbiddenというエラーjsdomにより、ブラウザ環境をシミュレートしてテストが実行されているため、クロスオリジン通信をしようとしているとエラーが出てしまう。node環境の場合は、jest.config.jsでtestEnvironmentにnodeを設定すれば問題ない。公式ドキュメントVRChatのusernameとdisplayNameは異なる普段表示されているのはdisplayName、大文字で登録したものは小文字としてusernameに登録されるっぽい。