-
Notifications
You must be signed in to change notification settings - Fork 309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[project-sequencer-statemachine] StoreをDIするように変更 #2495
[project-sequencer-statemachine] StoreをDIするように変更 #2495
Conversation
🚀 プレビュー用ページを作成しました 🚀 更新時点でのコミットハッシュ: |
すみません、ちょっと一旦方針だけ確認したく…! スタートマシンできれいに単体テストできる構成だったのが、しづらくなりそうですね…! ちなみにstoreをDIする形でも単体テストは可能です🙏 |
@Hiroshiba 単体テストを行うのであれば、storeのモックと、ブラウザのAPI(requestAnimationFrame、MouseEventなど)のモックが必要になると思います。 |
テストはちょっと僕もわかってないのですが、検証したい項目があり、効果が大きいとこでテストするのが良い気がしています! ステートマシンの単体テストの正常系は例えば、クリックしたらのノートが置かれる(実際にVuex状態変数が変わるのではなく、モック関数を仕込んでおく)、ノートを範囲選択したらステートが移動し想定した状態変数になる、何もないところを範囲選択しても状態が遷移しない、でも選択中に無を範囲選択するとIdleに戻る、とか・・・! ちなみに なんだかんだ言ってるけれども、結局ステートマシンがどれぐらい壊れやすいのものなのか先見の明がないので、テスト書くべきかどうかわからないんですよねー!! うーーーーーーん。 |
@Hiroshiba
Storeのモックはstate, getter, action, mutationなどをすべて実装しないといけないので大変ということでしょうか? |
一応全部実装しなくても可能ではあるのですが、無理やり関数をモックで上書きする形になったりなので、結構不便なんですよね。。。 とりあえず1枚噛ませておけば形は何であれ OK だと思うので、今のプルリクエストの形でいい感じだと思いました!!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
useSequencerStateMachine
で得られたいろんなインスタンスをprovide/injectする感じになりそう・・・でしょうか!
どんな感じの開発心地になるか楽しみです!!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
useSequencerStateMachine
で得られたいろんなインスタンスをprovide/injectする感じになりそう・・・でしょうか!
どんな感じの開発心地になるか楽しみです!!!
あ、もしかしたらmainにマージ可能な状態になった感じでしょうか? 👀 ちょっとパット考えた案まで:
|
a600597
into
VOICEVOX:project-sequencer-statemachine
@Hiroshiba |
承知しました!! |
内容
StoreをDIするようにします。
関連 Issue
その他