Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

dart-add-unit-test

`package:test` を使用して、関数・メソッド・クラスに対するユニットテストの作成と整理を行います。新しいロジックの実装やバグ修正の際に活用することで、コードの正確性を保ちリグレッションを防ぎます。

description の原文を見る

Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.

SKILL.md 本文

DartおよびFlutterアプリケーションのテスト

目次

テストファイルの構成

テストファイルをlibディレクトリ構造に対応させて整理し、予測可能性を保ちます。

  • すべてのテストコードをパッケージのルートにあるtestディレクトリに配置します。
  • すべてのテストファイル名の末尾に_test.dartを付けます(例:lib/src/utils.darttest/src/utils_test.dartでテストします)。
  • 統合テストを作成する場合は、パッケージのルートにあるintegration_testディレクトリに配置します。

テストの記述

Dartアプリケーションの標準テストライブラリとしてpackage:testを使用します。

  • package:test/test.dartをインポートします(Flutterの場合はpackage:flutter_test/flutter_test.dart)。
  • group()関数を使用して関連するテストをグループ化し、共有コンテキストを提供します。
  • test()関数を使用して個別のテストケースを定義します。
  • expect()関数をマッチャー(例:equals()isTruethrowsA())とともに使用して結果を検証します。
  • 標準的なasync/await構文を使用して非同期テストを記述します。テストランナーは自動的にFutureの完了を待機します。
  • setUp()およびtearDown()コールバックを使用してテストのセットアップとクリーンアップを管理します。
  • 依存性注入に依存するコードをテストする場合は、package:mockitopackage:testとともに使用して、モックオブジェクトを生成し、固定シナリオを設定し、相互作用を検証します。

テストの実行

プロジェクトタイプとテスト位置に基づいて、適切なテストランナーを選択します。

  • 純粋なDartプロジェクトで作業している場合は、dart testコマンドを使用してテストを実行します。
  • Flutterプロジェクトで作業している場合は、flutter testコマンドを使用してテストを実行します。
  • 統合テストを実行する場合は、デフォルトランナーはそれを無視するため、明示的にディレクトリパスを指定します:dart test integration_testまたはflutter test integration_test

テスト実装ワークフロー

新しいテストスイートを実装する際は、この順序に従ったワークフローに従います。チェックリストをコピーして進捗を追跡してください。

タスク進捗

  • 1. test/ディレクトリにテストファイルを作成し、_test.dartサフィックスを確認します。
  • 2. package:test/test.dartとターゲットライブラリをインポートします。
  • 3. main()関数を定義します。
  • 4. setUp()を使用して共有リソースまたはモックを初期化します。
  • 5. group()を使用して機能別にグループ化されたtest()ケースを記述します。
  • 6. 適切なCLIコマンドを使用してテストスイートを実行します。
  • 7. フィードバックループ:テスト実行 → 失敗のスタックトレースを確認 → 実装またはアサーションを修正 → パスするまで再実行。

標準ユニットテストスイート

グループ化、セットアップ、同期および非同期テストを示しています。

import 'package:test/test.dart';
import 'package:my_package/calculator.dart';

void main() {
  group('Calculator', () {
    late Calculator calc;

    setUp(() {
      calc = Calculator();
    });

    test('adds two numbers correctly', () {
      expect(calc.add(2, 3), equals(5));
    });

    test('handles asynchronous operations', () async {
      final result = await calc.fetchRemoteValue();
      expect(result, isNotNull);
      expect(result, greaterThan(0));
    });
  });
}

Mockitoによるモッキング

依存性注入テスト用のモックオブジェクトの設定を示しています。

import 'package:test/test.dart';
import 'package:mockito/mockito.dart';
import 'package:mockito/annotations.dart';
import 'package:my_package/api_client.dart';
import 'package:my_package/data_service.dart';

// build_runnerを使用してモックを生成します:dart run build_runner build
@GenerateNiceMocks([MockSpec<ApiClient>()])
import 'data_service_test.mocks.dart';

void main() {
  group('DataService', () {
    late MockApiClient mockApiClient;
    late DataService dataService;

    setUp(() {
      mockApiClient = MockApiClient();
      dataService = DataService(apiClient: mockApiClient);
    });

    test('returns parsed data on successful API call', () async {
      // モックを設定します
      when(mockApiClient.get('/data')).thenAnswer((_) async => '{"id": 1}');

      // テスト対象システムを実行します
      final result = await dataService.fetchData();

      // 結果と相互作用を検証します
      expect(result.id, equals(1));
      verify(mockApiClient.get('/data')).called(1);
    });
  });
}

ライセンス: BSD-3-Clause(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
dart-lang
リポジトリ
dart-lang/skills
ライセンス
BSD-3-Clause
最終更新
不明

Source: https://github.com/dart-lang/skills / ライセンス: BSD-3-Clause

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: dart-lang · dart-lang/skills · ライセンス: BSD-3-Clause