OSS探訪GitHubでログイン

.Should()から始まる読みやすいassertionで.NETのunit testに期待結果と失敗理由を表現する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
3,813
主要言語
C#
ライセンス
未判定
リポジトリ最終更新
2026/09/29
ページ内ナビ

概要

Fluent Assertionsは.NETテスト向けのassertionライブラリです。値・コレクション・例外・オブジェクトグラフなどの期待値をfluent APIで記述し、TDD/BDD形式のテストコードを読みやすくしながら、失敗時に具体的な診断メッセージを返します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

自然言語に近いfluent APIで期待結果を書く

numbers.Should().HaveCount(3)のように対象からassertionを連結し、値・コレクション・文字列・例外などの期待結果を読みやすい形で表現できます。

出典:[1]

assertion失敗時に期待値と実際値を詳しく表示する

READMEの例では期待件数と実際件数に加えてbecauseで与えた理由も失敗メッセージへ含められ、テスト失敗の原因調査を支援します。

出典:[1]

複数の.NET targetと主要テストフレームワークから利用できる

8.11.0のプロジェクトは.NET Framework 4.7、.NET 6、.NET Standard 2.0/2.1をtargetにし、READMEとパッケージ情報はMSTest、NUnit、xUnitなど複数のテストフレームワーク向け利用を案内しています。

出典:[3][1]

向いている用途

単体テストの意図と失敗メッセージを読みやすく揃えたい.NETチームに向く

assertionコードを低水準な比較から意図ベースの表現へ寄せ、レビュー時の可読性とテスト失敗時の情報量を高めたい.NETプロジェクトに適します。

出典:[1]

導入前の確認

version 8以降は商用利用に有償ライセンスが必要

READMEとLICENSEはversion 8以降について、オープンソースプロジェクトと非商用利用はCommunity Licenseで利用できる一方、商用利用にはXceedの有償Commercial Licenseが必要と明記しています。

出典:[2][1][3]

完全なOSS条件が必要ならversion 7系との違いを確認する

READMEはversion 7が引き続き完全なオープンソースとして不具合修正などを受けると説明しています。組織のライセンスポリシーや商用利用要件に応じて、8系と7系の条件を分けて評価してください。

出典:[1]

参考にした公式資料

  1. [1]Fluent Assertions 8.11.0 README(2026-10-04)
  2. [2]Fluent Assertions 8.11.0 Community License(2026-10-04)
  3. [3]Fluent Assertions 8.11.0 project metadata(2026-10-04)
  4. [4]Fluent Assertions 8.11.0 release(2026-10-04)
編集部からの補足

Fluent Assertionsはテストの読みやすさを大きく改善しますが、8系はライセンス条件が重要です。OSS/非商用ならCommunity License、商用利用なら有償ライセンスが必要なので、既存プロジェクトの7系から上げる場合も技術的移行だけで判断しないでください。

3ステップで試す

  1. 1

    xUnitの最小テストプロジェクトを作る

    Fluent Assertions 8.11.0は.NET 6以降でも利用できます。ここでは小さな.NET 8 xUnitプロジェクトでAPIだけを確認します。

    dotnet new xunit -n FluentAssertionsDemo -f net8.0
  2. 2

    8.11.0を追加して.Should() assertionを書く

    この手順はOSS/非商用の評価を前提にします。version 8以降を商用利用する場合はXceedの有償Commercial Licenseが必要です。

    cd FluentAssertionsDemo && dotnet add package FluentAssertions --version 8.11.0 && printf 'using FluentAssertions;\nusing Xunit;\n\npublic class UnitTest1\n{\n [Fact]\n public void Count_should_match() => new[] { 1, 2, 3 }.Should().HaveCount(3);\n}\n' > UnitTest1.cs
  3. 3

    testを実行する

    Should().HaveCount(3)が成功することを確認します。値を4へ変えると、期待値と実際値を含む失敗メッセージも確認できます。

    cd FluentAssertionsDemo && dotnet test
公式READMEで確認

成長

成長の推移 · 直近30日

3,813 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
19
Open PR
2

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • fluent-assertions
  • c-sharp
  • assertions
  • tdd
  • bdd-style
  • unit-testing
  • xunit
  • mstest
  • hacktoberfest
Stars
3,813
Forks
721
Watchers
67
Open Issues
64
Contributors
225
所有者種別
Organization
主要言語
C#
ライセンス
未判定
リポジトリ最終更新
2026/09/29

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?