unit-01jpcvxfxd87red8vvv00mjyy4.md•2.33 kB
---
description: 掟プロジェクトにおけるユニットテストの作成と実装に関する標準的なガイドライン
ruleId: unit-01jpcvxfxd87red8vvv00mjyy4
tags: [development, testing, unit-test]
aliases: [unit-test-rules]
globs: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.go", "**/*.rs", "**/*.scala"]
---
# ユニットテストの掟
## 概要
ユニットテストの作成と実装に関する標準的なガイドラインです。
## 目的
- コードの品質保証。
- バグの早期発見。
- リファクタリングの安全性確保。
- 仕様の文書化。
## 前提条件
- 各言語の標準テストフレームワークの基本知識。
- テスト駆動開発(TDD)の基本的な理解。
## 詳細
### 使用方法
#### テスト構造
```rust
#[test]
fn test_機能名_テストケース() {。
// 準備(Arrange)
let input = ...;。
// 実行(Act)
let result = function_under_test(input);。
// 検証(Assert)
assert_eq!(result, expected);。
}
```
### 注意事項
1. テストの独立性。
- 各テストは他のテストに依存しない。
- 共有状態を避ける。
2. テストデータ。
- テストデータは明示的に定義。
- 実際のデータに近い値を使用。
3. 命名規則。
- テスト名は`test_機能名_テストケース`の形式。
- わかりやすい説明的な名前を使用。
### ベストプラクティス
1. AAA(Arrange-Act-Assert)パターンの使用。
- テストの構造を明確に。
- 各セクションを明確に分離。
2. テストケースの網羅。
- 正常系と異常系の両方をテスト。
- エッジケースの考慮。
3. テストの保守性。
- DRYよりも読みやすさを優先。
- ヘルパー関数の適切な使用。
## トラブルシューティング
- フレークテスト(不安定なテスト)への対処。
- 非同期処理の適切な待機。
- タイムアウトの設定。
- テストのデバッグ。
- テスト失敗時のログ出力。
- テストコンテキストの明確な表示。
## 参考情報
- [[development/testing/benchmark|ベンチマークテスト]]。
- [[development/testing/index|テスト戦略概要]]。