Skip to content
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

Workflow実行時のPipelineテスト #486

Open
wants to merge 12 commits into
base: develop-test
Choose a base branch
from

Conversation

tsuchiyama-araya
Copy link
Collaborator

@tsuchiyama-araya tsuchiyama-araya commented Nov 21, 2024

【問題】

ワークフロースクリーンのテストは、コンポーネント(React Flow)とJestの互換性の問題により、まだ実装されていません。

【解決策】

ワークフローの状態管理に焦点を当てたテストの実装
ワークフロースクリーンのテストで重要なポイントは、ワークフローの実行状態をテストすることです。そのため、Reactコンポーネントに依存しないテスト方法を検討します。

【実装】

Reduxの状態管理や非同期アクションの動作をモックデータを用いて詳細に検証しています。特に、非同期アクションが成功/失敗した場合の状態遷移や、各プロパティが期待通りの値を持つことを確認することに重点を置いています。

関連リンク

@tsuchiyama-araya tsuchiyama-araya self-assigned this Nov 21, 2024
@tsuchiyama-araya tsuchiyama-araya linked an issue Nov 21, 2024 that may be closed by this pull request
1 task
frontend/src/store/slice/Pipeline/Pipeline.test.ts Outdated Show resolved Hide resolved
frontend/src/store/slice/Pipeline/Pipeline.test.ts Outdated Show resolved Hide resolved
}

// Helper to create a fulfilled action for a given action type and payload
const createFulfilledAction = (
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

そもそもですが、このファイルのテストコードは、実際のコードのどの範囲をテスト(coverage)対象としたものでしょうか?

  • 他の PilelineXXXX ファイルは、テストの対象外でしょうか? (PipelineSlice.ts のみがテスト対象?)
  • 上記が対象外の場合、その事由を確認させてください(文面では分かりづらそうなので、会話共有しましょう)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらは資料でまとめますので、少々お待ちください。
完了したら、Slackの方で報告します。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

テストケース資料について、cover率が低いファイルについて(Pipeline(Actions|Hook|Selectors))、事由をシートに補足解説しておいてください

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらはPipeline Hooksにコメントを追加しましたが、
他の完全ではないファイルにもメモを記載した方が良いでしょうか?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cover率が低いファイルについて(Pipeline(Actions|Hook|Selectors))、

例えば PipelineActions など、coverage が 11% 程度?(ほぼテスト対象外)となっていませんか?
→ ほぼテスト対象外なのであれば、解説を残しておくと良いと思われます。

@tsuchiyama-araya
Copy link
Collaborator Author

@itutu-tienday
ご確認いただきありがとうございます。
定数化できる箇所を修正いたしましたので、お手数ですがご確認いただけますと幸いです。

なお、テストのカバレッジについては現在資料を作成中ですので、少々お時間をいただければと思います。

@tsuchiyama-araya
Copy link
Collaborator Author

今回のテストCoverageを資料に追加しました。
https://docs.google.com/spreadsheets/d/1WdtZA0jXOrPrVQmtkEGkzk9erUV-aMRTgGA1cT7G7N4/edit?gid=1127361346#gid=1127361346

また、Jest Coverageを追加しましたので、yarn test-coverage {filePath} を実行すれば、
全体のファイルのテストCoverageを確認できます。

お手数ですが、ご確認お願い致します。

}

// Helper to create a fulfilled action for a given action type and payload
const createFulfilledAction = (
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cover率が低いファイルについて(Pipeline(Actions|Hook|Selectors))、

例えば PipelineActions など、coverage が 11% 程度?(ほぼテスト対象外)となっていませんか?
→ ほぼテスト対象外なのであれば、解説を残しておくと良いと思われます。

// Helper to create a fulfilled action for a given action type and payload
const createFulfilledAction = (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
actionType: AsyncThunk<any, any, any>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FulfilledAction のみ、type 指定に generics を利用しているのは、どのような事由からでしょうか?
※pending や reject では、generics を使用せず 個別に ActionClass が定義されているように見えています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Workflow Pipeline テスト
3 participants