Agent skill · software engineering · affaan-m
django-tdd
Django testing strategies with pytest-django, TDD methodology, factory_boy, mocking, coverage, and testing Django REST Framework APIs.
Why this skill is useful
Provides specific testing strategies and configurations for Django applications that the AI wouldn't reliably generate on its own.
What it needs
Requires factory_boy, pytest installed locally. About 6k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
Django テスト駆動開発(TDD) pytest、factoryboy、Django REST Frameworkを使用したDjangoアプリケーションのテスト駆動開発。 いつ有効化するか 新しいDjangoアプリケーションを書くとき Django REST Framework APIを実装するとき Djangoモデル、ビュー、シリアライザーをテストするとき Djangoプロジェクトのテストインフラを設定するとき DjangoのためのTDDワークフロー Red-Green-Refactorサイクル セットアップ pytest設定 テスト設定 conftest.py Factory Boy ファクトリーセットアップ ファクトリーの使用 モデルテスト モデルテスト ビューテスト Djangoビューテスト DRF APIテスト シリアライザーテスト API ViewSetテスト モッキングとパッチング 外部サービスのモック メール送信のモック 統合テスト 完全フローテスト テストのベストプラクティス すべきこと ファクトリーを使用: 手動オブジェクト作成の代わりに テストごとに1つのアサーション: テストを焦点を絞る 説明的なテスト名: testusercannotdeleteotherspost エッジケースをテスト: 空の入力、None値、境界条件 外部サービスをモック: 外部APIに依存しない フィクスチャを使用: 重複を排除 パーミッションをテスト: 認可が機能することを確認 テストを高速に保つ: --reuse-dbと--nomigrationsを使用 すべきでないこと Django内部をテストしない: Djangoが機能することを信頼 サードパーティコードをテストしない: ライブラリが機能することを信頼 失敗するテストを無視しない: すべてのテストが通る必要がある テストを依存させない: テストは任意の順序で実行できるべき 過度にモックしない: 外部依存関係のみをモック プライベートメソッドをテストしない: パブリックインターフェースをテスト 本番データベースを使用しない: 常にテストデータベースを使用 カバレッジ カバレッジ設定 カバレッジ目標 コンポーネント 目標カバレッジ ----------- ----------------- モデル 90%+ シリアライザー 85%+ ビュー 80%+ サービス 90%+ ユーティリティ 80%+ 全体 80%+ クイックリファレンス パターン 使用法 --------- ------- @pytest.mark.djangodb データベースアクセスを有効化 client Djangoテストクライアント apiclient DRF APIクライアント factory.createbatch(n) 複数のオブジェクトを作成 patch('module.function') 外部依存関係をモック overridesettings 設定を一時的に変更 forceauthenticate() テストで認証をバイパス assertRedirects リダイレクトをチェック assertTemplateUsed テンプレート使用を検証 mail.outbox 送信されたメールをチェック 覚えておいてください: テストはドキュメントです。良いテストはコードがどのように動作すべきかを説明します。シンプルで、読みやすく、保守可能に保ってください。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/django-tdd