java-junit
JUnit 5を使ったユニットテストのベストプラクティスを提供するスキルです。データ駆動テストの実装方法を含め、効果的なテスト設計や記述方法を案内します。
description の原文を見る
Get best practices for JUnit 5 unit testing, including data-driven tests
SKILL.md 本文
JUnit 5+ ベストプラクティス
JUnit 5 で効果的なユニットテストを書くことをサポートします。標準的なテスト方法とデータ駆動テスト方法の両方に対応します。
プロジェクトセットアップ
- 標準的な Maven または Gradle プロジェクト構造を使用します。
- テストソースコードは
src/test/javaに配置します。 junit-jupiter-api、junit-jupiter-engine、およびパラメータ化テスト用のjunit-jupiter-paramsの依存関係を含めます。- ビルドツールコマンドでテストを実行します:
mvn testまたはgradle test。
テスト構造
- テストクラスには
Testサフィックスを付けます。例えばCalculatorクラスに対してCalculatorTest。 - テストメソッドには
@Testを使用します。 - Arrange-Act-Assert(AAA)パターンに従います。
- テストに説明的な命名規則を使用します。例えば
methodName_should_expectedBehavior_when_scenario。 - テストごとのセットアップとクリーンアップには
@BeforeEachと@AfterEachを使用します。 - クラスごとのセットアップとクリーンアップには
@BeforeAllと@AfterAllを使用します(静的メソッドである必要があります)。 - テストクラスとメソッドに人間が読める名前を付けるには
@DisplayNameを使用します。
標準テスト
- テストを単一の動作に焦点を当てます。
- 1 つのテストメソッド内で複数の条件をテストするのは避けます。
- テストは独立しており、べき等性があります(任意の順序で実行可能)。
- テスト間の相互依存性を避けます。
データ駆動(パラメータ化)テスト
- パラメータ化テストをマークするには
@ParameterizedTestを使用します。 - シンプルなリテラル値(文字列、整数など)には
@ValueSourceを使用します。 Stream、Collectionなどとしてテスト引数を提供するファクトリメソッドを参照するには@MethodSourceを使用します。- インラインのカンマ区切り値には
@CsvSourceを使用します。 - クラスパスから CSV ファイルを使用するには
@CsvFileSourceを使用します。 - 列挙型定数を使用するには
@EnumSourceを使用します。
アサーション
org.junit.jupiter.api.Assertionsの静的メソッドを使用します(例:assertEquals、assertTrue、assertNotNull)。- より流暢で読みやすいアサーションには AssertJ などのライブラリの使用を検討します(
assertThat(...).is...)。 - 例外をテストするには
assertThrowsまたはassertDoesNotThrowを使用します。 - 関連するアサーションを
assertAllでグループ化して、すべてのアサーションがテスト失敗前にチェックされるようにします。 - アサーション内で説明的なメッセージを使用して、失敗時に明確性を提供します。
モッキングと分離
- Mockito のようなモッキングフレームワークを使用して、依存関係のモックオブジェクトを作成します。
- Mockito の
@Mockおよび@InjectMocksアノテーションを使用して、モック作成とインジェクションを簡素化します。 - インターフェースを使用してモッキングを容易にします。
テスト組織
- パッケージを使用してテストを機能またはコンポーネント別にグループ化します。
@Tagを使用してテストを分類します(例:@Tag("fast")、@Tag("integration"))。- 厳密に必要な場合、
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)と@Orderを使用してテスト実行順序を制御します。 - テストメソッドまたはクラスを一時的にスキップするには
@Disabledを使用し、理由を提供します。 - より良い組織と構造のために、ネストされた内部クラスでテストをグループ化するには
@Nestedを使用します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。