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

dart-migrate-to-checks-package

`package:matcher` の `expect` などの関数を、`package:checks` の同等機能に置き換えます。テストコードの移行作業を自動化し、新しいAPIへのスムーズな移行をサポートします。

description の原文を見る

Replace the usage of `expect` and similar functions from `package:matcher` to `package:checks` equivalents.

SKILL.md 本文

Dart テストを Package Checks に移行する

目次

依存関係の管理

Dart Tooling MCP Server の pub ツールまたは標準 CLI コマンドを使用して依存関係を管理します。

  • dart pub add dev:checks を使用して package:checksdev_dependency として追加します。
  • pubspec.yaml で明示的にリストされている場合は package:matcher を削除します(注:package:test によって推移的に含まれることが多いため、その場合は問題ありません)。
  • 移行対象のすべてのテストファイルで package:checks/checks.dart をインポートします。

構文移行ガイドライン

テストアサーションを package:matcher 構文から package:checks が提供する自然な API に移行します。

  • 基本的な等価性比較: expect(actual, equals(expected)) または expect(actual, expected)check(actual).equals(expected) に置き換えます。
  • 型チェック: expect(actual, isA<Type>())check(actual).isA<Type>() に置き換えます。
  • プロパティ抽出: expect(actual.property, expected)check(actual).has((a) => a.property, 'property name').equals(expected) に置き換えます。
  • 複数チェックのカスケード: Dart のカスケード演算子(..)を使用して、単一の対象に対する複数の期待値をチェーンします。
  • 非同期期待値:
    • Future をチェックする場合は、check 呼び出しを await します:await check(someFuture).completes((r) => r.equals(expected));
    • Stream をチェックする場合は、StreamQueue でラップして複数回のチェックを行うか、単一/ブロードキャストチェックの場合は .withQueue を使用します。

Dart MCP ツールの活用

Dart MCP Server ツールを活用して、移行プロセスを自動化し検証します。

  • pub を使用して dart pub get または dart pub add を実行します。
  • analyze_files を使用して、プロジェクトまたは特定パスで静的解析を実行します。
  • run_tests を使用して、Dart または Flutter テストをエージェント中心の UX で実行します。dart test などのシェルコマンドの代わりに、常にこれを使用してください。
  • dart_fix を使用して、該当する場合は自動修正を適用します。

移行ワークフロー

テストスイートを移行する際の進捗状況を追跡するために、以下のチェックリストをコピーして使用します。

  • タスク進捗
    • package:checks を dev dependency として追加します。
    • package:matcher を使用しているすべてのテストファイル(expect 呼び出し)を特定します。
    • ターゲットテストファイルで package:checks/checks.dart をインポートします。
    • すべての expect(...) ステートメントを check(...) ステートメントに書き直します。
    • 静的解析機を実行します(analyze_files)。
    • テストを実行します(run_tests)。

フィードバックループ:静的解析

  1. 修正されたテストディレクトリで analyze_files ツールを実行します。
  2. 静的解析の警告またはエラー(例:インポートの欠落、isA の不正なジェネリック型、待機されていない Future)をレビューします。
  3. 警告を修正します。
  4. アナライザーが 0 個の問題を返すまで繰り返します。

フィードバックループ:テスト検証

  1. run_tests ツールを実行します。
  2. テストが失敗した場合は、失敗出力をレビューします。package:checks は詳細なコンテキストを提供します(例:Which: has length of <2>)。
  3. check() の期待値または基になるコードを調整して失敗を解決します。
  4. すべてのテストがパスするまで繰り返します。

基本的なアサーション

入力(matcher):

expect(someList.length, 1);
expect(someString, startsWith('a'));
expect(someObject, isA<Map>());

出力(checks):

check(someList).length.equals(1);
check(someString).startsWith('a');
check(someObject).isA<Map>();

合成期待値

入力(matcher):

expect('foo,bar,baz', allOf([
  contains('foo'),
  isNot(startsWith('bar')),
  endsWith('baz')
]));

出力(checks):

check('foo,bar,baz')
  ..contains('foo')
  ..not((s) => s.startsWith('bar'))
  ..endsWith('baz');

非同期 Future

入力(matcher):

expect(Future.value(10), completion(equals(10)));
expect(Future.error('oh no'), throwsA(equals('oh no')));

出力(checks):

await check(Future.value(10)).completes((it) => it.equals(10));
await check(Future.error('oh no')).throws<String>().equals('oh no');

非同期 Stream

入力(matcher):

var stdout = StreamQueue(Stream.fromIterable(['Ready', 'Go']));
await expectLater(stdout, emitsThrough('Ready'));

出力(checks):

var stdout = StreamQueue(Stream.fromIterable(['Ready', 'Go']));
await check(stdout).emitsThrough((it) => it.equals('Ready'));

ライセンス: 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