Dependency injection
Summary
外部へのHTTPリクエストとかジョブキューの状態とか気にしないでテスト書けるようにしたい
InversifyJSとかのDIライブラリ使う or NestJSで書き直す
理想的には全部Nestで書き直すのが良いんだろうけど、私のスキルが足りなすぎるのとあまりにも大変になるから、現実的には必要な箇所だけDIコンテナライブラリ使ってやっていく感じになりそう
https://github.com/typestack/typedi がシンプルで良さそう
外部ライブラリのクラスのインスタンスとかはどうやって注入するんだろう
テスト上でTypeORMのRepositoryもDIしたい感じが出てきた
外部ライブラリのクラスのインスタンスとかはどうやって注入するんだろう
これが謎
https://github.com/microsoft/tsyringe でも良さそう
外部ライブラリのクラスのインスタンスとかはどうやって注入するんだろう
これが謎
こんな感じでラップしたクラスを作るのが正解っぽい? https://github.com/inversify/inversify-express-example/blob/master/MongoDB/utils/mongodb/client.ts
大変そう
ヌァァァァァァァァァァァァァァァァァァァァァァァァァァァァァァァァァァンンンンオオオオンンオンオンオンオンンンンンンンンン゛ン゛!!!!!!!!!!!!!!!!
外部ライブラリのクラスのインスタンスとかはどうやって注入するんだろう
文字列指定でcontainerに値を登録 & serviceにinjectできるっぽい
やっていく https://github.com/misskey-dev/misskey/tree/di
外部ライブラリのクラスのインスタンスとかはどうやって注入するんだろう
文字列指定でcontainerに値を登録 & serviceにinjectできるっぽい
正しい使い方なのか(外部ライブラリのクラスのインスタンスを注入する目的を想定しているのか)は謎
テスト書くときはどうすんだこれ
tasukete
全然情報がない
テストの際に特定のserviceだけモックに置き換えるのってどうするんだ
ンニャゴゴゴゴゴゴゴゴ
多分これ https://stackoverflow.com/questions/61658973/mocking-typedi-service-with-jest
特定のメソッドだけ差し替えるのは出来ないの
Nest.jsのDI部分だけを利用することもできそう
- https://docs.nestjs.com/fundamentals/platform-agnosticism
- https://docs.nestjs.com/standalone-applications
これなら一般的なRESTサービスとはちょっと違うMisskeyでも使えそう
Nest使うか...
やった