"No","テストID","対象ファイル","対象クラス/関数","対象メソッド","テスト観点","テストケース名","前提条件","入力値","期待結果","優先度","備考"
"1","UT-HXU-001","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkAttribute.cs","AvaloniaTestFrameworkAttribute","FrameworkType","正常系","FrameworkTypeプロパティがAvaloniaTestFrameworkを返すこと","なし","なし","typeof(AvaloniaTestFramework)が返却される","高","テストフレームワーク登録の基本機能"
"2","UT-HXU-002","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkAttribute.cs","AvaloniaTestFrameworkAttribute","(属性)","正常系","アセンブリレベルでのみ適用可能であること","なし","[assembly: AvaloniaTestFramework]","コンパイルが成功する","中","AttributeUsageの検証"
"3","UT-HXU-003","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkAttribute.cs","AvaloniaTestFrameworkAttribute","(属性)","異常系","クラスレベルに適用した場合コンパイルエラーとなること","なし","[AvaloniaTestFramework] class Test {}","コンパイルエラーが発生する","中","AttributeUsageの制限検証"
"4","UT-HXU-004","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","コンストラクタ","正常系","有効なパラメータでインスタンスが生成されること","IXunitTestMethodが有効","testMethod, displayName, uniqueID等","AvaloniaTestCaseインスタンスが生成される","高","テストケース生成の基本機能"
"5","UT-HXU-005","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","コンストラクタ","正常系","オプションパラメータがnullの場合でもインスタンスが生成されること","なし","skipExceptions=null, skipReason=null等","正常にインスタンスが生成される","中","null許容パラメータの検証"
"6","UT-HXU-006","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","Run","正常系","テストが正常に実行されRunSummaryが返却されること","HeadlessUnitTestSessionが有効","explicitOption, messageBus, constructorArguments, aggregator, cancellationTokenSource","RunSummaryが返却される","高","テスト実行の基本機能"
"7","UT-HXU-007","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","Run","正常系","SkipReasonが設定されている場合スキップされること","SkipReasonが設定済み","skipReason=""テストをスキップ""","テストがスキップされRunSummary.Skipped=1","中","スキップ機能の検証"
"8","UT-HXU-008","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","Run","異常系","キャンセルトークンでキャンセルされた場合の挙動","なし","cancellationTokenSource.Cancel()","OperationCanceledExceptionまたはRunSummary.Failed=0","高","キャンセル処理の検証"
"9","UT-HXU-009","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","Run","異常系","テストメソッドで例外がスローされた場合","テストメソッドが例外をスロー","例外をスローするテストメソッド","RunSummary.Failed=1でエラー情報が記録される","高","例外ハンドリングの検証"
"10","UT-HXU-010","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","コンストラクタ","正常系","有効なパラメータでインスタンスが生成されること","IXunitTestMethodが有効","testMethod, displayName, uniqueID, skipTestWithoutData等","インスタンスが正常に生成される","高","遅延列挙Theoryテストケース生成"
"11","UT-HXU-011","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","コンストラクタ","正常系","skipTestWithoutData=trueの場合の動作","なし","skipTestWithoutData=true","データがない場合にスキップされる設定になる","中","データなしスキップオプション"
"12","UT-HXU-012","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","Run","正常系","複数データ行でテストが実行されること","TheoryDataが複数行","複数のテストデータ","各データ行に対してテストが実行される","高","Theory基本機能"
"13","UT-HXU-013","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","Run","境界値","データ行が0件の場合","TheoryDataが空","空のデータソース","skipTestWithoutData設定に応じてスキップまたは失敗","中","空データの境界ケース"
"14","UT-HXU-014","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","Run","境界値","データ行が1件の場合","TheoryDataが1行","1件のテストデータ","1回のテスト実行が行われる","低","単一データの境界ケース"
"15","UT-HXU-015","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","Instance","正常系","シングルトンインスタンスが取得できること","なし","AvaloniaTestCaseRunner.Instance","同一インスタンスが返却される","高","シングルトンパターンの検証"
"16","UT-HXU-016","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","Run","正常系","テストケースが正常に実行されRunSummaryが返却されること","HeadlessUnitTestSessionが有効","testCase, tests, messageBus, aggregator等","RunSummaryが返却される","高","テストケース実行の基本機能"
"17","UT-HXU-017","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","Run","正常系","HeadlessUnitTestSessionがアセンブリから取得されること","アセンブリが有効","testCase.TestClass.Class.Assembly","セッションが取得または開始される","高","セッション管理の検証"
"18","UT-HXU-018","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","Run","異常系","nullのtestCaseが渡された場合","なし","testCase=null","ArgumentNullExceptionがスローされる","中","null入力の検証"
"19","UT-HXU-019","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","RunTest","正常系","個別テストがAvaloniaTestRunnerで実行されること","コンテキストが有効","ctxt, test","AvaloniaTestRunner.Instance.Runが呼び出される","高","テスト実行委譲の検証"
"20","UT-HXU-020","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunner.cs","AvaloniaTestRunner","Instance","正常系","シングルトンインスタンスが取得できること","なし","AvaloniaTestRunner.Instance","同一インスタンスが返却される","高","シングルトンパターンの検証"
"21","UT-HXU-021","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunner.cs","AvaloniaTestRunner","Run","正常系","テストがAvaloniaディスパッチャー上で実行されること","HeadlessUnitTestSessionが有効","test, messageBus, constructorArguments等","Dispatcher.UIThread上でテストが実行される","高","ディスパッチャー統合の検証"
"22","UT-HXU-022","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunner.cs","AvaloniaTestRunner","Run","正常系","テスト後にDispatcher.RunJobs()が呼び出されること","なし","非同期テストメソッド","保留中のジョブが処理される","高","ジョブ処理の検証"
"23","UT-HXU-023","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunner.cs","AvaloniaTestRunner","Run","正常系","BeforeAfterTestAttributesが適用されること","BeforeAfterTestAttributeが設定済み","beforeAfterAttributes=[TestBeforeAfter]","Before/Afterメソッドが呼び出される","中","テストライフサイクルの検証"
"24","UT-HXU-024","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunner.cs","AvaloniaTestRunner","Run","異常系","キャンセルトークンでキャンセルされた場合","なし","cancellationTokenSource.Cancel()","適切にキャンセルが処理される","高","キャンセル処理の検証"
"25","UT-HXU-025","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFramework.cs","AvaloniaTestFramework","CreateDiscoverer","正常系","AvaloniaTestFrameworkDiscovererが生成されること","Assemblyが有効","有効なAssembly","AvaloniaTestFrameworkDiscovererインスタンスが返却される","高","ディスカバラー生成の検証"
"26","UT-HXU-026","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFramework.cs","AvaloniaTestFramework","CreateDiscoverer","正常系","XunitTestAssemblyが正しく構成されること","なし","assembly, null, assembly.GetName().Version","正しいバージョン情報を持つXunitTestAssembly","中","アセンブリ情報の検証"
"27","UT-HXU-027","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFramework.cs","AvaloniaTestFramework","CreateExecutor","正常系","AvaloniaTestFrameworkExecutorが生成されること","Assemblyが有効","有効なAssembly","AvaloniaTestFrameworkExecutorインスタンスが返却される","高","エグゼキュータ生成の検証"
"28","UT-HXU-028","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkDiscoverer.cs","AvaloniaTestFrameworkDiscoverer","コンストラクタ","正常系","FactAttributeに対してAvaloniaFactDiscovererが登録されること","なし","testAssembly","DiscovererTypeCache[FactAttribute]=AvaloniaFactDiscoverer","高","ディスカバラーキャッシュ登録"
"29","UT-HXU-029","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkDiscoverer.cs","AvaloniaTestFrameworkDiscoverer","コンストラクタ","正常系","TheoryAttributeに対してAvaloniaTheoryDiscovererが登録されること","なし","testAssembly","DiscovererTypeCache[TheoryAttribute]=AvaloniaTheoryDiscoverer","高","ディスカバラーキャッシュ登録"
"30","UT-HXU-030","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkExecutor.cs","AvaloniaTestFrameworkExecutor","コンストラクタ","正常系","HeadlessUnitTestSessionがアセンブリから取得されること","IXunitTestAssemblyが有効","testAssembly","_sessionが初期化される","高","セッション初期化の検証"
"31","UT-HXU-031","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkExecutor.cs","AvaloniaTestFrameworkExecutor","CreateDiscoverer","正常系","AvaloniaTestFrameworkDiscovererが生成されること","TestAssemblyが設定済み","なし","AvaloniaTestFrameworkDiscovererインスタンス","高","ディスカバラー生成の検証"
"32","UT-HXU-032","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkExecutor.cs","AvaloniaTestFrameworkExecutor","DisposeAsync","正常系","セッションが破棄されること","セッションが有効","なし","_session.DisposeAsync()が呼び出される","高","リソース解放の検証"
"33","UT-HXU-033","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestFrameworkExecutor.cs","AvaloniaTestFrameworkExecutor","DisposeAsync","正常系","基底クラスのDisposeAsyncが呼び出されること","なし","なし","base.DisposeAsync()が呼び出される","中","継承チェーンの検証"
"34","UT-HXU-034","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactDiscoverer.cs","AvaloniaFactDiscoverer","CreateTestCase","正常系","AvaloniaTestCaseが生成されること","discoveryOptions, testMethod, factAttributeが有効","有効なパラメータ","AvaloniaTestCaseインスタンスが返却される","高","Factテストケース生成"
"35","UT-HXU-035","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactDiscoverer.cs","AvaloniaFactDiscoverer","CreateTestCase","正常系","TestIntrospectionHelperから詳細が取得されること","なし","discoveryOptions, testMethod, factAttribute","正しいTestCaseDisplayName, UniqueID等が設定される","高","イントロスペクション統合"
"36","UT-HXU-036","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactDiscoverer.cs","AvaloniaFactDiscoverer","CreateTestCase","正常系","Traitsが正しく設定されること","testMethodにTraitsが設定済み","Traits付きのtestMethod","生成されたTestCaseにTraitsが含まれる","中","Traits伝播の検証"
"37","UT-HXU-037","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactDiscoverer.cs","AvaloniaFactDiscoverer","CreateTestCase","正常系","ソースファイル情報が設定されること","ソースファイル情報が利用可能","sourceFilePath, sourceLineNumber","TestCaseにソース位置情報が含まれる","低","デバッグ情報の検証"
"38","UT-HXU-038","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForDataRow","正常系","データ行からAvaloniaTestCaseが生成されること","TheoryDataRowが有効","discoveryOptions, testMethod, theoryAttribute, dataRow, testMethodArguments","AvaloniaTestCaseのコレクションが返却される","高","Theoryデータ行処理"
"39","UT-HXU-039","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForDataRow","正常系","testMethodArgumentsがTestCaseに渡されること","引数付きデータ行","testMethodArguments=[1, ""test""]","TestCaseに引数が含まれる","高","引数伝播の検証"
"40","UT-HXU-040","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForDataRow","正常系","dataRowからTraitsが取得されること","dataRowにTraitsが設定済み","Traits付きのdataRow","TestCaseにTraitsが含まれる","中","Traits抽出の検証"
"41","UT-HXU-041","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForTheory","正常系","SkipReasonがある場合AvaloniaTestCaseが生成されること","SkipReasonが設定済み","skipReason=""スキップ理由"", skipUnless=null, skipWhen=null","AvaloniaTestCaseが返却される","高","スキップ付きTheory"
"42","UT-HXU-042","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForTheory","正常系","SkipReasonがない場合AvaloniaDelayEnumeratedTheoryTestCaseが生成されること","SkipReasonがnull","skipReason=null","AvaloniaDelayEnumeratedTheoryTestCaseが返却される","高","遅延列挙Theory"
"43","UT-HXU-043","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForTheory","正常系","SkipUnlessが設定されている場合AvaloniaDelayEnumeratedTheoryTestCaseが生成されること","SkipUnlessが設定済み","skipReason=""理由"", skipUnless=""条件""","AvaloniaDelayEnumeratedTheoryTestCaseが返却される","中","条件付きスキップ"
"44","UT-HXU-044","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForTheory","正常系","SkipWhenが設定されている場合AvaloniaDelayEnumeratedTheoryTestCaseが生成されること","SkipWhenが設定済み","skipReason=""理由"", skipWhen=""条件""","AvaloniaDelayEnumeratedTheoryTestCaseが返却される","中","条件付きスキップ"
"45","UT-HXU-045","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryDiscoverer.cs","AvaloniaTheoryDiscoverer","CreateTestCasesForTheory","正常系","SkipTestWithoutDataがTheoryAttributeから取得されること","なし","theoryAttribute.SkipTestWithoutData=true","DelayEnumeratedTestCaseにフラグが設定される","中","データなしスキップ設定"
"46","UT-HXU-046","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunnerContext.cs","AvaloniaTestCaseRunnerContext","コンストラクタ","正常系","すべてのパラメータが正しく設定されること","パラメータが有効","testCase, tests, messageBus等","プロパティが正しく初期化される","高","コンテキスト初期化"
"47","UT-HXU-047","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunnerContext.cs","AvaloniaTestCaseRunnerContext","Session","正常系","Sessionプロパティが渡されたセッションを返すこと","sessionが有効","session=HeadlessUnitTestSession","同一のセッションインスタンスが返却される","高","セッションアクセス"
"48","UT-HXU-048","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunnerContext.cs","AvaloniaTestRunnerContext","コンストラクタ","正常系","すべてのパラメータが正しく設定されること","パラメータが有効","test, messageBus, explicitOption等","プロパティが正しく初期化される","高","コンテキスト初期化"
"49","UT-HXU-049","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestRunnerContext.cs","AvaloniaTestRunnerContext","Session","正常系","Sessionプロパティが渡されたセッションを返すこと","sessionが有効","session=HeadlessUnitTestSession","同一のセッションインスタンスが返却される","高","セッションアクセス"
"50","UT-HXU-050","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactAttribute.cs","AvaloniaFactAttribute","(属性)","正常系","メソッドレベルでのみ適用可能であること","なし","[AvaloniaFact] void TestMethod()","コンパイルが成功する","高","属性適用の検証"
"51","UT-HXU-051","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactAttribute.cs","AvaloniaFactAttribute","(属性)","異常系","クラスレベルに適用した場合コンパイルエラーとなること","なし","[AvaloniaFact] class Test {}","コンパイルエラーが発生する","中","属性制限の検証"
"52","UT-HXU-052","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactAttribute.cs","AvaloniaFactAttribute","(属性)","正常系","AvaloniaFactDiscovererが関連付けられていること","なし","[AvaloniaFact]","XunitTestCaseDiscoverer属性でAvaloniaFactDiscovererが指定されている","高","ディスカバラー関連付け"
"53","UT-HXU-053","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactAttribute.cs","AvaloniaFactAttribute","コンストラクタ","正常系","CallerFilePathが自動取得されること","なし","[AvaloniaFact]","sourceFilePathに呼び出し元ファイルパスが設定される","中","呼び出し元情報の取得"
"54","UT-HXU-054","src/Headless/Avalonia.Headless.XUnit/AvaloniaFactAttribute.cs","AvaloniaFactAttribute","コンストラクタ","正常系","CallerLineNumberが自動取得されること","なし","[AvaloniaFact]","sourceLineNumberに呼び出し元行番号が設定される","中","呼び出し元情報の取得"
"55","UT-HXU-055","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryAttribute.cs","AvaloniaTheoryAttribute","(属性)","正常系","メソッドレベルでのみ適用可能であること","なし","[AvaloniaTheory] void TestMethod()","コンパイルが成功する","高","属性適用の検証"
"56","UT-HXU-056","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryAttribute.cs","AvaloniaTheoryAttribute","(属性)","正常系","AvaloniaTheoryDiscovererが関連付けられていること","なし","[AvaloniaTheory]","XunitTestCaseDiscoverer属性でAvaloniaTheoryDiscovererが指定されている","高","ディスカバラー関連付け"
"57","UT-HXU-057","src/Headless/Avalonia.Headless.XUnit/AvaloniaTheoryAttribute.cs","AvaloniaTheoryAttribute","(属性)","正常系","TheoryAttributeを継承していること","なし","なし","AvaloniaTheoryAttribute : TheoryAttribute","中","継承関係の検証"
"58","UT-HXU-058","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCase.cs","AvaloniaTestCase","デシリアライズコンストラクタ","正常系","パラメータなしコンストラクタでインスタンスが生成されること","なし","new AvaloniaTestCase()","空のインスタンスが生成される（デシリアライズ用）","中","シリアライゼーションサポート"
"59","UT-HXU-059","src/Headless/Avalonia.Headless.XUnit/AvaloniaDelayEnumeratedTheoryTestCase.cs","AvaloniaDelayEnumeratedTheoryTestCase","デシリアライズコンストラクタ","正常系","パラメータなしコンストラクタでインスタンスが生成されること","なし","new AvaloniaDelayEnumeratedTheoryTestCase()","空のインスタンスが生成される（デシリアライズ用）","中","シリアライゼーションサポート"
"60","UT-HXU-060","src/Headless/Avalonia.Headless.XUnit/AvaloniaTestCaseRunner.cs","AvaloniaTestCaseRunner","Run","正常系","AvaloniaTestCaseRunnerContextが正しく初期化されること","パラメータが有効","testCase, tests, messageBus等","ctxt.InitializeAsync()が呼び出される","高","コンテキスト初期化の検証"
