[{"data":1,"prerenderedAt":3556},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Fintegrations\u002Ftunit":287,"docs:\u002Fdocs\u002Fintegrations\u002Ftunit-surround":3553},[4],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","docs",[9,33,63,85,99,137,154],{"title":10,"badge":11,"icon":12,"path":13,"stem":14,"children":15,"page":32},"Get started",null,"i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F1.get-started",[16,20,24,28],{"title":17,"path":18,"stem":19,"badge":11},"Introduction","\u002Fdocs\u002Fget-started\u002Fintroduction","docs\u002F1.get-started\u002F1.introduction",{"title":21,"path":22,"stem":23,"badge":11},"Installation","\u002Fdocs\u002Fget-started\u002Finstallation","docs\u002F1.get-started\u002F2.installation",{"title":25,"path":26,"stem":27,"badge":11},"Your first test","\u002Fdocs\u002Fget-started\u002Ffirst-test","docs\u002F1.get-started\u002F3.first-test",{"title":29,"path":30,"stem":31,"badge":11},"Refactoring a test","\u002Fdocs\u002Fget-started\u002Frefactoring-a-test","docs\u002F1.get-started\u002F4.refactoring-a-test",false,{"title":34,"badge":11,"icon":35,"path":36,"stem":37,"children":38,"page":32},"Fundamentals","i-lucide-layers","\u002Fdocs\u002Ffundamentals","docs\u002F2.fundamentals",[39,43,47,51,55,59],{"title":40,"path":41,"stem":42,"badge":11},"Fixture and Create","\u002Fdocs\u002Ffundamentals\u002Ffixture-and-create","docs\u002F2.fundamentals\u002F1.fixture-and-create",{"title":44,"path":45,"stem":46,"badge":11},"Build DSL","\u002Fdocs\u002Ffundamentals\u002Fbuild-dsl","docs\u002F2.fundamentals\u002F2.build-dsl",{"title":48,"path":49,"stem":50,"badge":11},"Customizations","\u002Fdocs\u002Ffundamentals\u002Fcustomizations","docs\u002F2.fundamentals\u002F3.customizations",{"title":52,"path":53,"stem":54,"badge":11},"Specimen graphs","\u002Fdocs\u002Ffundamentals\u002Fspecimen-graphs","docs\u002F2.fundamentals\u002F4.specimen-graphs",{"title":56,"path":57,"stem":58,"badge":11},"Behaviors","\u002Fdocs\u002Ffundamentals\u002Fbehaviors","docs\u002F2.fundamentals\u002F5.behaviors",{"title":60,"path":61,"stem":62,"badge":11},"Customizations catalog","\u002Fdocs\u002Ffundamentals\u002Fcustomizations-catalog","docs\u002F2.fundamentals\u002F6.customizations-catalog",{"title":64,"badge":11,"icon":65,"path":66,"stem":67,"children":68,"page":32},"How-to guides","i-lucide-book-open","\u002Fdocs\u002Fhow-to","docs\u002F3.how-to",[69,73,77,81],{"title":70,"path":71,"stem":72,"badge":11},"Collections","\u002Fdocs\u002Fhow-to\u002Fcollections","docs\u002F3.how-to\u002F1.collections",{"title":74,"path":75,"stem":76,"badge":11},"Circular references","\u002Fdocs\u002Fhow-to\u002Fcircular-refs","docs\u002F3.how-to\u002F2.circular-refs",{"title":78,"path":79,"stem":80,"badge":11},"Register, Freeze, and Inject","\u002Fdocs\u002Fhow-to\u002Fregister-freeze-inject","docs\u002F3.how-to\u002F3.register-freeze-inject",{"title":82,"path":83,"stem":84,"badge":11},"Data annotations","\u002Fdocs\u002Fhow-to\u002Fdata-annotations","docs\u002F3.how-to\u002F4.data-annotations",{"title":86,"badge":11,"icon":87,"path":88,"stem":89,"children":90,"page":32},"Extensions","i-lucide-puzzle","\u002Fdocs\u002Fextensions","docs\u002F4.extensions",[91,95],{"title":92,"path":93,"stem":94,"badge":11},"Idioms","\u002Fdocs\u002Fextensions\u002Fidioms","docs\u002F4.extensions\u002F1.idioms",{"title":96,"path":97,"stem":98,"badge":11},"Seed extensions","\u002Fdocs\u002Fextensions\u002Fseed-extensions","docs\u002F4.extensions\u002F2.seed-extensions",{"title":100,"badge":11,"icon":101,"path":102,"stem":103,"children":104,"page":32},"Integrations","i-lucide-plug","\u002Fdocs\u002Fintegrations","docs\u002F5.integrations",[105,109,113,117,121,125,129],{"title":106,"path":107,"stem":108,"badge":11},"Overview","\u002Fdocs\u002Fintegrations\u002Foverview","docs\u002F5.integrations\u002F00.overview",{"title":110,"path":111,"stem":112,"badge":11},"xUnit.net 3","\u002Fdocs\u002Fintegrations\u002Fxunit3","docs\u002F5.integrations\u002F01.xunit3",{"title":114,"path":115,"stem":116,"badge":11},"AutoMoq","\u002Fdocs\u002Fintegrations\u002Fautomoq","docs\u002F5.integrations\u002F02.automoq",{"title":118,"path":119,"stem":120,"badge":11},"NUnit 4","\u002Fdocs\u002Fintegrations\u002Fnunit4","docs\u002F5.integrations\u002F04.nunit4",{"title":122,"path":123,"stem":124,"badge":11},"AutoNSubstitute","\u002Fdocs\u002Fintegrations\u002Fautonsubstitute","docs\u002F5.integrations\u002F06.autonsubstitute",{"title":126,"path":127,"stem":128,"badge":11},"AutoFakeItEasy","\u002Fdocs\u002Fintegrations\u002Fautofakeiteasy","docs\u002F5.integrations\u002F09.autofakeiteasy",{"title":130,"path":131,"stem":132,"badge":133},"TUnit","\u002Fdocs\u002Fintegrations\u002Ftunit","docs\u002F5.integrations\u002F10.tunit",{"label":134,"color":135,"variant":136},"Preview","warning","subtle",{"title":138,"badge":11,"icon":139,"path":140,"stem":141,"children":142,"page":32},"Advanced","i-lucide-cog","\u002Fdocs\u002Fadvanced","docs\u002F6.advanced",[143,146,150],{"title":106,"path":144,"stem":145,"badge":11},"\u002Fdocs\u002Fadvanced\u002Foverview","docs\u002F6.advanced\u002F0.overview",{"title":147,"path":148,"stem":149,"badge":11},"Specimen pipeline","\u002Fdocs\u002Fadvanced\u002Fspecimen-pipeline","docs\u002F6.advanced\u002F1.specimen-pipeline",{"title":151,"path":152,"stem":153,"badge":11},"Specimen builders and specifications","\u002Fdocs\u002Fadvanced\u002Fspecimen-builders-and-specifications","docs\u002F6.advanced\u002F2.specimen-builders-and-specifications",{"title":155,"badge":11,"icon":156,"path":157,"stem":158,"children":159,"page":32},"Reference","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F7.reference",[160,164,168,172,176,180,184],{"title":161,"path":162,"stem":163,"badge":11},"NuGet packages","\u002Fdocs\u002Freference\u002Fpackages","docs\u002F7.reference\u002F1.packages",{"title":165,"path":166,"stem":167,"badge":11},"API reference","\u002Fdocs\u002Freference\u002Fapi-reference","docs\u002F7.reference\u002F2.api-reference",{"title":169,"path":170,"stem":171,"badge":11},"Cheat sheet","\u002Fdocs\u002Freference\u002Fcheat-sheet","docs\u002F7.reference\u002F3.cheat-sheet",{"title":173,"path":174,"stem":175,"badge":11},"FAQ","\u002Fdocs\u002Freference\u002Ffaq","docs\u002F7.reference\u002F4.faq",{"title":177,"path":178,"stem":179,"badge":11},"Compatibility","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F7.reference\u002F5.compatibility",{"title":181,"path":182,"stem":183,"badge":11},"v4 to v5 migration","\u002Fdocs\u002Freference\u002Fv4-to-v5-migration","docs\u002F7.reference\u002F6.v4-to-v5-migration",{"title":185,"path":186,"stem":187,"badge":11},"Previous versions","\u002Fdocs\u002Freference\u002Fprevious-versions","docs\u002F7.reference\u002F7.previous-versions",{"defaultPath":189,"packages":190},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1",[191,204,210,215,221,227,232,238,243,248,253,258,264,271,276,281],{"id":192,"name":193,"nugetId":193,"primary":194,"versions":195,"defaultVersion":197,"defaultVersionSegment":198},"autofixture","AutoFixture",true,[196,200],{"version":197,"versionSegment":198,"line":199,"isLatest":194},"5.0.0-rc.1","5-0-0-rc-1","v5",{"version":201,"versionSegment":202,"line":203,"isLatest":32},"4.18.1","4-18-1","v4",{"id":205,"name":206,"nugetId":206,"primary":32,"versions":207,"defaultVersion":197,"defaultVersionSegment":198},"autofakeiteasy","AutoFixture.AutoFakeItEasy",[208,209],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":211,"name":212,"nugetId":212,"primary":32,"versions":213,"defaultVersion":201,"defaultVersionSegment":202},"autofoq","AutoFixture.AutoFoq",[214],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":216,"name":217,"nugetId":217,"primary":32,"versions":218,"defaultVersion":197,"defaultVersionSegment":198},"automoq","AutoFixture.AutoMoq",[219,220],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":222,"name":223,"nugetId":223,"primary":32,"versions":224,"defaultVersion":197,"defaultVersionSegment":198},"autonsubstitute","AutoFixture.AutoNSubstitute",[225,226],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":228,"name":229,"nugetId":229,"primary":32,"versions":230,"defaultVersion":201,"defaultVersionSegment":202},"autorhinomocks","AutoFixture.AutoRhinoMocks",[231],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":233,"name":234,"nugetId":234,"primary":32,"versions":235,"defaultVersion":197,"defaultVersionSegment":198},"idioms","AutoFixture.Idioms",[236,237],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":239,"name":240,"nugetId":240,"primary":32,"versions":241,"defaultVersion":201,"defaultVersionSegment":202},"idioms-fscheck","AutoFixture.Idioms.FsCheck",[242],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":244,"name":245,"nugetId":245,"primary":32,"versions":246,"defaultVersion":201,"defaultVersionSegment":202},"nunit2","AutoFixture.NUnit2",[247],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":249,"name":250,"nugetId":250,"primary":32,"versions":251,"defaultVersion":201,"defaultVersionSegment":202},"nunit3","AutoFixture.NUnit3",[252],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":254,"name":255,"nugetId":255,"primary":32,"versions":256,"defaultVersion":197,"defaultVersionSegment":198},"nunit4","AutoFixture.NUnit4",[257],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"id":259,"name":260,"nugetId":260,"primary":32,"versions":261,"defaultVersion":197,"defaultVersionSegment":198},"seedextensions","AutoFixture.SeedExtensions",[262,263],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":265,"name":266,"nugetId":266,"primary":32,"versions":267,"defaultVersion":269,"defaultVersionSegment":270},"tunit","AutoFixture.TUnit",[268],{"version":269,"versionSegment":270,"line":203,"isLatest":194},"0.1.0-preview0001","0-1-0-preview0001",{"id":272,"name":273,"nugetId":273,"primary":32,"versions":274,"defaultVersion":201,"defaultVersionSegment":202},"xunit","AutoFixture.xUnit",[275],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":277,"name":278,"nugetId":278,"primary":32,"versions":279,"defaultVersion":201,"defaultVersionSegment":202},"xunit2","AutoFixture.xUnit2",[280],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":282,"name":283,"nugetId":283,"primary":32,"versions":284,"defaultVersion":197,"defaultVersionSegment":198},"xunit3","AutoFixture.Xunit3",[285],{"version":197,"versionSegment":198,"line":199,"isLatest":194},[],{"id":288,"title":130,"badge":289,"body":290,"description":3547,"extension":3548,"meta":3549,"navigation":194,"path":131,"seo":3550,"stem":132,"updated":3551,"__hash__":3552},"docs\u002Fdocs\u002F5.integrations\u002F10.tunit.md",{"label":134,"color":135,"variant":136},{"type":291,"value":292,"toc":3526},"minimark",[293,308,322,332,337,360,364,455,470,474,485,489,626,630,633,773,780,903,907,918,1372,1379,1589,1613,1617,1620,1625,1638,1717,1724,1728,1747,1756,1892,1913,2002,2012,2016,2023,2059,2277,2286,2290,2306,2390,2394,2401,2436,2439,2443,2461,2759,2771,2775,2782,2798,2979,2989,2993,2999,3276,3279,3283,3375,3379,3414,3418,3522],[294,295,296,302,303,307],"p",{},[297,298,130],"a",{"href":299,"rel":300},"https:\u002F\u002Fgithub.com\u002Fthomhurst\u002FTUnit",[301],"nofollow"," is a modern .NET test framework built on Microsoft.Testing.Platform. It uses data-source attributes to feed arguments into ",[304,305,306],"code",{},"[Test]"," methods; you normally supply those values yourself (or with TUnit's built-in data sources).",[294,309,310,313,314,317,318,321],{},[311,312,266],"strong",{}," connects AutoFixture to TUnit. Attributes such as ",[304,315,316],{},"[AutoDataSource]"," and ",[304,319,320],{},"[AutoArguments]"," fill test parameters with anonymous specimens so you skip most of the arrange setup.",[294,323,324,325,328,329,331],{},"AutoFixture.TUnit currently targets ",[311,326,327],{},"AutoFixture 4"," (",[304,330,201],{},") and ships as a NuGet preview.",[333,334,336],"h2",{"id":335},"prerequisites","Prerequisites",[338,339,340,348,355],"ul",{},[341,342,343,344,347],"li",{},".NET 8+ test project (the package also supports ",[304,345,346],{},"netstandard2.0"," consumers)",[341,349,350,354],{},[297,351,193],{"href":352,"rel":353},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAutoFixture\u002F4.18.1",[301]," 4.18.1",[341,356,357],{},[297,358,130],{"href":299,"rel":359},[301],[333,361,363],{"id":362},"install","Install",[365,366,371],"pre",{"className":367,"code":368,"language":369,"meta":370,"style":370},"language-xml shiki shiki-themes light-plus light-plus dark-plus","\u003CPackageReference Include=\"AutoFixture\" Version=\"4.18.1\" \u002F>\n\u003CPackageReference Include=\"AutoFixture.TUnit\" Version=\"0.1.0-preview0001\" \u002F>\n\u003CPackageReference Include=\"TUnit\" Version=\"1.66.8\" \u002F>\n","xml","",[304,372,373,409,432],{"__ignoreMap":370},[374,375,378,382,386,390,394,398,401,403,406],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"s9Xrk","\u003C",[374,383,385],{"class":384},"swrg_","PackageReference",[374,387,389],{"class":388},"ssBXb"," Include",[374,391,393],{"class":392},"s_Yst","=",[374,395,397],{"class":396},"swG-L","\"AutoFixture\"",[374,399,400],{"class":388}," Version",[374,402,393],{"class":392},[374,404,405],{"class":396},"\"4.18.1\"",[374,407,408],{"class":380}," \u002F>\n",[374,410,412,414,416,418,420,423,425,427,430],{"class":376,"line":411},2,[374,413,381],{"class":380},[374,415,385],{"class":384},[374,417,389],{"class":388},[374,419,393],{"class":392},[374,421,422],{"class":396},"\"AutoFixture.TUnit\"",[374,424,400],{"class":388},[374,426,393],{"class":392},[374,428,429],{"class":396},"\"0.1.0-preview0001\"",[374,431,408],{"class":380},[374,433,435,437,439,441,443,446,448,450,453],{"class":376,"line":434},3,[374,436,381],{"class":380},[374,438,385],{"class":384},[374,440,389],{"class":388},[374,442,393],{"class":392},[374,444,445],{"class":396},"\"TUnit\"",[374,447,400],{"class":388},[374,449,393],{"class":392},[374,451,452],{"class":396},"\"1.66.8\"",[374,454,408],{"class":380},[294,456,457,459,460,463,464,466,467,469],{},[304,458,266],{}," depends on ",[304,461,462],{},"TUnit.Core",". Reference the full ",[311,465,130],{}," package in test projects for ",[304,468,306],{}," and assertions.",[333,471,473],{"id":472},"example-scenario","Example scenario",[294,475,476,477,480,481,484],{},"You are testing ",[304,478,479],{},"MyClass.Echo"," with TUnit. The test needs an integer and a ",[304,482,483],{},"MyClass"," instance without manual arrange code. Later tests freeze collaborators, mix inline rows with generated values, or share fixture setup across tests.",[333,486,488],{"id":487},"autodatasource","AutoDataSource",[365,490,494],{"className":491,"code":492,"language":493,"meta":370,"style":370},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","[Test, AutoDataSource]\npublic async Task AutoDataSource_ProvidesTestParameters(int expectedNumber, MyClass sut)\n{\n    var result = sut.Echo(expectedNumber);\n\n    await Assert.That(result).IsEqualTo(expectedNumber);\n}\n","csharp",[304,495,496,513,549,554,583,589,620],{"__ignoreMap":370},[374,497,498,501,505,508,510],{"class":376,"line":377},[374,499,500],{"class":392},"[",[374,502,504],{"class":503},"sopvc","Test",[374,506,507],{"class":392},", ",[374,509,488],{"class":503},[374,511,512],{"class":392},"]\n",[374,514,515,519,522,525,529,532,535,539,541,543,546],{"class":376,"line":411},[374,516,518],{"class":517},"stxUP","public",[374,520,521],{"class":517}," async",[374,523,524],{"class":503}," Task",[374,526,528],{"class":527},"swoLU"," AutoDataSource_ProvidesTestParameters",[374,530,531],{"class":392},"(",[374,533,534],{"class":517},"int",[374,536,538],{"class":537},"sswaR"," expectedNumber",[374,540,507],{"class":392},[374,542,483],{"class":503},[374,544,545],{"class":537}," sut",[374,547,548],{"class":392},")\n",[374,550,551],{"class":376,"line":434},[374,552,553],{"class":392},"{\n",[374,555,557,560,563,566,569,572,575,577,580],{"class":376,"line":556},4,[374,558,559],{"class":517},"    var",[374,561,562],{"class":537}," result",[374,564,565],{"class":392}," = ",[374,567,568],{"class":537},"sut",[374,570,571],{"class":392},".",[374,573,574],{"class":527},"Echo",[374,576,531],{"class":392},[374,578,579],{"class":537},"expectedNumber",[374,581,582],{"class":392},");\n",[374,584,586],{"class":376,"line":585},5,[374,587,588],{"emptyLinePlaceholder":194},"\n",[374,590,592,595,598,600,603,605,608,611,614,616,618],{"class":376,"line":591},6,[374,593,594],{"class":517},"    await",[374,596,597],{"class":537}," Assert",[374,599,571],{"class":392},[374,601,602],{"class":527},"That",[374,604,531],{"class":392},[374,606,607],{"class":537},"result",[374,609,610],{"class":392},").",[374,612,613],{"class":527},"IsEqualTo",[374,615,531],{"class":392},[374,617,579],{"class":537},[374,619,582],{"class":392},[374,621,623],{"class":376,"line":622},7,[374,624,625],{"class":392},"}\n",[333,627,629],{"id":628},"autoarguments","AutoArguments",[294,631,632],{},"Mix explicit values with generated ones. Explicit arguments fill parameters left-to-right; AutoFixture generates the rest:",[365,634,636],{"className":491,"code":635,"language":493,"meta":370,"style":370},"[Test]\n[AutoArguments(\"alpha\")]\n[AutoArguments(\"alpha\", \"beta\")]\npublic async Task AutoArguments_MixesExplicitAndGeneratedValues(string first, string second)\n{\n    await Assert.That(first).IsEqualTo(\"alpha\");\n    await Assert.That(string.IsNullOrEmpty(second)).IsFalse();\n}\n",[304,637,638,646,661,678,706,710,735,768],{"__ignoreMap":370},[374,639,640,642,644],{"class":376,"line":377},[374,641,500],{"class":392},[374,643,504],{"class":503},[374,645,512],{"class":392},[374,647,648,650,652,654,658],{"class":376,"line":411},[374,649,500],{"class":392},[374,651,629],{"class":503},[374,653,531],{"class":392},[374,655,657],{"class":656},"sFD8J","\"alpha\"",[374,659,660],{"class":392},")]\n",[374,662,663,665,667,669,671,673,676],{"class":376,"line":434},[374,664,500],{"class":392},[374,666,629],{"class":503},[374,668,531],{"class":392},[374,670,657],{"class":656},[374,672,507],{"class":392},[374,674,675],{"class":656},"\"beta\"",[374,677,660],{"class":392},[374,679,680,682,684,686,689,691,694,697,699,701,704],{"class":376,"line":556},[374,681,518],{"class":517},[374,683,521],{"class":517},[374,685,524],{"class":503},[374,687,688],{"class":527}," AutoArguments_MixesExplicitAndGeneratedValues",[374,690,531],{"class":392},[374,692,693],{"class":517},"string",[374,695,696],{"class":537}," first",[374,698,507],{"class":392},[374,700,693],{"class":517},[374,702,703],{"class":537}," second",[374,705,548],{"class":392},[374,707,708],{"class":376,"line":585},[374,709,553],{"class":392},[374,711,712,714,716,718,720,722,725,727,729,731,733],{"class":376,"line":591},[374,713,594],{"class":517},[374,715,597],{"class":537},[374,717,571],{"class":392},[374,719,602],{"class":527},[374,721,531],{"class":392},[374,723,724],{"class":537},"first",[374,726,610],{"class":392},[374,728,613],{"class":527},[374,730,531],{"class":392},[374,732,657],{"class":656},[374,734,582],{"class":392},[374,736,737,739,741,743,745,747,749,751,754,756,759,762,765],{"class":376,"line":622},[374,738,594],{"class":517},[374,740,597],{"class":537},[374,742,571],{"class":392},[374,744,602],{"class":527},[374,746,531],{"class":392},[374,748,693],{"class":517},[374,750,571],{"class":392},[374,752,753],{"class":527},"IsNullOrEmpty",[374,755,531],{"class":392},[374,757,758],{"class":537},"second",[374,760,761],{"class":392},")).",[374,763,764],{"class":527},"IsFalse",[374,766,767],{"class":392},"();\n",[374,769,771],{"class":376,"line":770},8,[374,772,625],{"class":392},[294,774,775,776,779],{},"Prefer the generic form when a single inline value must stay strongly typed — especially arrays. Non-generic ",[304,777,778],{},"params object?[]"," can expand an array into multiple cells:",[365,781,783],{"className":491,"code":782,"language":493,"meta":370,"style":370},"[Test, AutoArguments\u003Cint[]>([1, 2])]\npublic async Task AutoArguments_GenericArray_KeepsOneParameter(int[] values, MyClass sut)\n{\n    await Assert.That(values).IsEquivalentTo([1, 2]);\n    await Assert.That(sut).IsNotNull();\n}\n",[304,784,785,814,843,847,878,899],{"__ignoreMap":370},[374,786,787,789,791,793,795,797,799,802,806,808,811],{"class":376,"line":377},[374,788,500],{"class":392},[374,790,504],{"class":503},[374,792,507],{"class":392},[374,794,629],{"class":503},[374,796,381],{"class":392},[374,798,534],{"class":517},[374,800,801],{"class":392},"[]>([",[374,803,805],{"class":804},"s-S-M","1",[374,807,507],{"class":392},[374,809,810],{"class":804},"2",[374,812,813],{"class":392},"])]\n",[374,815,816,818,820,822,825,827,829,832,835,837,839,841],{"class":376,"line":411},[374,817,518],{"class":517},[374,819,521],{"class":517},[374,821,524],{"class":503},[374,823,824],{"class":527}," AutoArguments_GenericArray_KeepsOneParameter",[374,826,531],{"class":392},[374,828,534],{"class":517},[374,830,831],{"class":392},"[] ",[374,833,834],{"class":537},"values",[374,836,507],{"class":392},[374,838,483],{"class":503},[374,840,545],{"class":537},[374,842,548],{"class":392},[374,844,845],{"class":376,"line":434},[374,846,553],{"class":392},[374,848,849,851,853,855,857,859,861,863,866,869,871,873,875],{"class":376,"line":556},[374,850,594],{"class":517},[374,852,597],{"class":537},[374,854,571],{"class":392},[374,856,602],{"class":527},[374,858,531],{"class":392},[374,860,834],{"class":537},[374,862,610],{"class":392},[374,864,865],{"class":527},"IsEquivalentTo",[374,867,868],{"class":392},"([",[374,870,805],{"class":804},[374,872,507],{"class":392},[374,874,810],{"class":804},[374,876,877],{"class":392},"]);\n",[374,879,880,882,884,886,888,890,892,894,897],{"class":376,"line":585},[374,881,594],{"class":517},[374,883,597],{"class":537},[374,885,571],{"class":392},[374,887,602],{"class":527},[374,889,531],{"class":392},[374,891,568],{"class":537},[374,893,610],{"class":392},[374,895,896],{"class":527},"IsNotNull",[374,898,767],{"class":392},[374,900,901],{"class":376,"line":591},[374,902,625],{"class":392},[333,904,906],{"id":905},"automemberdatasource-and-autoclassdatasource","AutoMemberDataSource and AutoClassDataSource",[294,908,909,910,913,914,917],{},"Use ",[304,911,912],{},"[AutoMemberDataSource]"," when some values come from a static member (property, field, or method). Use ",[304,915,916],{},"[AutoClassDataSource]"," when values come from a separate provider type. AutoFixture fills any remaining parameters.",[365,919,921],{"className":491,"code":920,"language":493,"meta":370,"style":370},"public static IEnumerable\u003C(int Left, int Right)> TupleRows =>\n[\n    (2, 3),\n    (10, -4)\n];\n\n[Test, AutoMemberDataSource(nameof(TupleRows))]\npublic async Task AutoMemberDataSource_FillsRemainingParameters(\n    int a, int b, Calculator calculator)\n{\n    await Assert.That(calculator.Add(a, b)).IsEqualTo(a + b);\n}\n\n[Test, AutoClassDataSource(typeof(KnownSumRows))]\npublic async Task AutoClassDataSource_FillsRemainingParameters(\n    int a, int b, Calculator calculator)\n{\n    await Assert.That(calculator.Add(a, b)).IsEqualTo(a + b);\n}\n\npublic class KnownSumRows : IEnumerable\u003Cobject[]>\n{\n    public IEnumerator\u003Cobject[]> GetEnumerator()\n    {\n        yield return [1, 1];\n        yield return [7, 8];\n    }\n\n    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();\n}\n",[304,922,923,957,962,977,992,997,1001,1024,1038,1064,1069,1114,1119,1124,1148,1162,1183,1188,1229,1234,1239,1264,1269,1291,1297,1318,1337,1343,1348,1367],{"__ignoreMap":370},[374,924,925,927,930,933,936,938,941,943,945,948,951,954],{"class":376,"line":377},[374,926,518],{"class":517},[374,928,929],{"class":517}," static",[374,931,932],{"class":537}," IEnumerable",[374,934,935],{"class":392},"\u003C(",[374,937,534],{"class":517},[374,939,940],{"class":537}," Left",[374,942,507],{"class":392},[374,944,534],{"class":517},[374,946,947],{"class":537}," Right",[374,949,950],{"class":392},")> ",[374,952,953],{"class":537},"TupleRows",[374,955,956],{"class":392}," =>\n",[374,958,959],{"class":376,"line":411},[374,960,961],{"class":392},"[\n",[374,963,964,967,969,971,974],{"class":376,"line":434},[374,965,966],{"class":392},"    (",[374,968,810],{"class":804},[374,970,507],{"class":392},[374,972,973],{"class":804},"3",[374,975,976],{"class":392},"),\n",[374,978,979,981,984,987,990],{"class":376,"line":556},[374,980,966],{"class":392},[374,982,983],{"class":804},"10",[374,985,986],{"class":392},", -",[374,988,989],{"class":804},"4",[374,991,548],{"class":392},[374,993,994],{"class":376,"line":585},[374,995,996],{"class":392},"];\n",[374,998,999],{"class":376,"line":591},[374,1000,588],{"emptyLinePlaceholder":194},[374,1002,1003,1005,1007,1009,1012,1014,1017,1019,1021],{"class":376,"line":622},[374,1004,500],{"class":392},[374,1006,504],{"class":503},[374,1008,507],{"class":392},[374,1010,1011],{"class":503},"AutoMemberDataSource",[374,1013,531],{"class":392},[374,1015,1016],{"class":517},"nameof",[374,1018,531],{"class":392},[374,1020,953],{"class":537},[374,1022,1023],{"class":392},"))]\n",[374,1025,1026,1028,1030,1032,1035],{"class":376,"line":770},[374,1027,518],{"class":517},[374,1029,521],{"class":517},[374,1031,524],{"class":503},[374,1033,1034],{"class":527}," AutoMemberDataSource_FillsRemainingParameters",[374,1036,1037],{"class":392},"(\n",[374,1039,1041,1044,1047,1049,1051,1054,1056,1059,1062],{"class":376,"line":1040},9,[374,1042,1043],{"class":517},"    int",[374,1045,1046],{"class":537}," a",[374,1048,507],{"class":392},[374,1050,534],{"class":517},[374,1052,1053],{"class":537}," b",[374,1055,507],{"class":392},[374,1057,1058],{"class":503},"Calculator",[374,1060,1061],{"class":537}," calculator",[374,1063,548],{"class":392},[374,1065,1067],{"class":376,"line":1066},10,[374,1068,553],{"class":392},[374,1070,1072,1074,1076,1078,1080,1082,1085,1087,1090,1092,1094,1096,1099,1101,1103,1105,1107,1110,1112],{"class":376,"line":1071},11,[374,1073,594],{"class":517},[374,1075,597],{"class":537},[374,1077,571],{"class":392},[374,1079,602],{"class":527},[374,1081,531],{"class":392},[374,1083,1084],{"class":537},"calculator",[374,1086,571],{"class":392},[374,1088,1089],{"class":527},"Add",[374,1091,531],{"class":392},[374,1093,297],{"class":537},[374,1095,507],{"class":392},[374,1097,1098],{"class":537},"b",[374,1100,761],{"class":392},[374,1102,613],{"class":527},[374,1104,531],{"class":392},[374,1106,297],{"class":537},[374,1108,1109],{"class":392}," + ",[374,1111,1098],{"class":537},[374,1113,582],{"class":392},[374,1115,1117],{"class":376,"line":1116},12,[374,1118,625],{"class":392},[374,1120,1122],{"class":376,"line":1121},13,[374,1123,588],{"emptyLinePlaceholder":194},[374,1125,1127,1129,1131,1133,1136,1138,1141,1143,1146],{"class":376,"line":1126},14,[374,1128,500],{"class":392},[374,1130,504],{"class":503},[374,1132,507],{"class":392},[374,1134,1135],{"class":503},"AutoClassDataSource",[374,1137,531],{"class":392},[374,1139,1140],{"class":517},"typeof",[374,1142,531],{"class":392},[374,1144,1145],{"class":503},"KnownSumRows",[374,1147,1023],{"class":392},[374,1149,1151,1153,1155,1157,1160],{"class":376,"line":1150},15,[374,1152,518],{"class":517},[374,1154,521],{"class":517},[374,1156,524],{"class":503},[374,1158,1159],{"class":527}," AutoClassDataSource_FillsRemainingParameters",[374,1161,1037],{"class":392},[374,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181],{"class":376,"line":1164},16,[374,1166,1043],{"class":517},[374,1168,1046],{"class":537},[374,1170,507],{"class":392},[374,1172,534],{"class":517},[374,1174,1053],{"class":537},[374,1176,507],{"class":392},[374,1178,1058],{"class":503},[374,1180,1061],{"class":537},[374,1182,548],{"class":392},[374,1184,1186],{"class":376,"line":1185},17,[374,1187,553],{"class":392},[374,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227],{"class":376,"line":1190},18,[374,1192,594],{"class":517},[374,1194,597],{"class":537},[374,1196,571],{"class":392},[374,1198,602],{"class":527},[374,1200,531],{"class":392},[374,1202,1084],{"class":537},[374,1204,571],{"class":392},[374,1206,1089],{"class":527},[374,1208,531],{"class":392},[374,1210,297],{"class":537},[374,1212,507],{"class":392},[374,1214,1098],{"class":537},[374,1216,761],{"class":392},[374,1218,613],{"class":527},[374,1220,531],{"class":392},[374,1222,297],{"class":537},[374,1224,1109],{"class":392},[374,1226,1098],{"class":537},[374,1228,582],{"class":392},[374,1230,1232],{"class":376,"line":1231},19,[374,1233,625],{"class":392},[374,1235,1237],{"class":376,"line":1236},20,[374,1238,588],{"emptyLinePlaceholder":194},[374,1240,1242,1244,1247,1250,1253,1256,1258,1261],{"class":376,"line":1241},21,[374,1243,518],{"class":517},[374,1245,1246],{"class":517}," class",[374,1248,1249],{"class":503}," KnownSumRows",[374,1251,1252],{"class":392}," : ",[374,1254,1255],{"class":503},"IEnumerable",[374,1257,381],{"class":392},[374,1259,1260],{"class":517},"object",[374,1262,1263],{"class":392},"[]>\n",[374,1265,1267],{"class":376,"line":1266},22,[374,1268,553],{"class":392},[374,1270,1272,1275,1278,1280,1282,1285,1288],{"class":376,"line":1271},23,[374,1273,1274],{"class":517},"    public",[374,1276,1277],{"class":503}," IEnumerator",[374,1279,381],{"class":392},[374,1281,1260],{"class":517},[374,1283,1284],{"class":392},"[]> ",[374,1286,1287],{"class":527},"GetEnumerator",[374,1289,1290],{"class":392},"()\n",[374,1292,1294],{"class":376,"line":1293},24,[374,1295,1296],{"class":392},"    {\n",[374,1298,1300,1304,1307,1310,1312,1314,1316],{"class":376,"line":1299},25,[374,1301,1303],{"class":1302},"smUd-","        yield",[374,1305,1306],{"class":1302}," return",[374,1308,1309],{"class":392}," [",[374,1311,805],{"class":804},[374,1313,507],{"class":392},[374,1315,805],{"class":804},[374,1317,996],{"class":392},[374,1319,1321,1323,1325,1327,1330,1332,1335],{"class":376,"line":1320},26,[374,1322,1303],{"class":1302},[374,1324,1306],{"class":1302},[374,1326,1309],{"class":392},[374,1328,1329],{"class":804},"7",[374,1331,507],{"class":392},[374,1333,1334],{"class":804},"8",[374,1336,996],{"class":392},[374,1338,1340],{"class":376,"line":1339},27,[374,1341,1342],{"class":392},"    }\n",[374,1344,1346],{"class":376,"line":1345},28,[374,1347,588],{"emptyLinePlaceholder":194},[374,1349,1351,1354,1356,1358,1360,1363,1365],{"class":376,"line":1350},29,[374,1352,1353],{"class":503},"    IEnumerator",[374,1355,932],{"class":503},[374,1357,571],{"class":392},[374,1359,1287],{"class":527},[374,1361,1362],{"class":392},"() => ",[374,1364,1287],{"class":527},[374,1366,767],{"class":392},[374,1368,1370],{"class":376,"line":1369},30,[374,1371,625],{"class":392},[294,1373,1374,1375,1378],{},"Generic forms (C# 11+) avoid ",[304,1376,1377],{},"typeof(...)"," for the member host or provider type:",[365,1380,1382],{"className":491,"code":1381,"language":493,"meta":370,"style":370},"[Test, AutoMemberDataSource\u003CCalculatorTests>(nameof(TupleRows))]\npublic async Task AutoMemberDataSource_GenericHost(int a, int b, Calculator calculator)\n{\n    await Assert.That(calculator.Add(a, b)).IsEqualTo(a + b);\n}\n\n[Test, AutoClassDataSource\u003CKnownSumRows>]\npublic async Task AutoClassDataSource_GenericProvider(int a, int b, Calculator calculator)\n{\n    await Assert.That(calculator.Add(a, b)).IsEqualTo(a + b);\n}\n",[304,1383,1384,1410,1441,1445,1485,1489,1493,1510,1541,1545,1585],{"__ignoreMap":370},[374,1385,1386,1388,1390,1392,1394,1396,1399,1402,1404,1406,1408],{"class":376,"line":377},[374,1387,500],{"class":392},[374,1389,504],{"class":503},[374,1391,507],{"class":392},[374,1393,1011],{"class":503},[374,1395,381],{"class":392},[374,1397,1398],{"class":503},"CalculatorTests",[374,1400,1401],{"class":392},">(",[374,1403,1016],{"class":517},[374,1405,531],{"class":392},[374,1407,953],{"class":537},[374,1409,1023],{"class":392},[374,1411,1412,1414,1416,1418,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439],{"class":376,"line":411},[374,1413,518],{"class":517},[374,1415,521],{"class":517},[374,1417,524],{"class":503},[374,1419,1420],{"class":527}," AutoMemberDataSource_GenericHost",[374,1422,531],{"class":392},[374,1424,534],{"class":517},[374,1426,1046],{"class":537},[374,1428,507],{"class":392},[374,1430,534],{"class":517},[374,1432,1053],{"class":537},[374,1434,507],{"class":392},[374,1436,1058],{"class":503},[374,1438,1061],{"class":537},[374,1440,548],{"class":392},[374,1442,1443],{"class":376,"line":434},[374,1444,553],{"class":392},[374,1446,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483],{"class":376,"line":556},[374,1448,594],{"class":517},[374,1450,597],{"class":537},[374,1452,571],{"class":392},[374,1454,602],{"class":527},[374,1456,531],{"class":392},[374,1458,1084],{"class":537},[374,1460,571],{"class":392},[374,1462,1089],{"class":527},[374,1464,531],{"class":392},[374,1466,297],{"class":537},[374,1468,507],{"class":392},[374,1470,1098],{"class":537},[374,1472,761],{"class":392},[374,1474,613],{"class":527},[374,1476,531],{"class":392},[374,1478,297],{"class":537},[374,1480,1109],{"class":392},[374,1482,1098],{"class":537},[374,1484,582],{"class":392},[374,1486,1487],{"class":376,"line":585},[374,1488,625],{"class":392},[374,1490,1491],{"class":376,"line":591},[374,1492,588],{"emptyLinePlaceholder":194},[374,1494,1495,1497,1499,1501,1503,1505,1507],{"class":376,"line":622},[374,1496,500],{"class":392},[374,1498,504],{"class":503},[374,1500,507],{"class":392},[374,1502,1135],{"class":503},[374,1504,381],{"class":392},[374,1506,1145],{"class":503},[374,1508,1509],{"class":392},">]\n",[374,1511,1512,1514,1516,1518,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539],{"class":376,"line":770},[374,1513,518],{"class":517},[374,1515,521],{"class":517},[374,1517,524],{"class":503},[374,1519,1520],{"class":527}," AutoClassDataSource_GenericProvider",[374,1522,531],{"class":392},[374,1524,534],{"class":517},[374,1526,1046],{"class":537},[374,1528,507],{"class":392},[374,1530,534],{"class":517},[374,1532,1053],{"class":537},[374,1534,507],{"class":392},[374,1536,1058],{"class":503},[374,1538,1061],{"class":537},[374,1540,548],{"class":392},[374,1542,1543],{"class":376,"line":1040},[374,1544,553],{"class":392},[374,1546,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583],{"class":376,"line":1066},[374,1548,594],{"class":517},[374,1550,597],{"class":537},[374,1552,571],{"class":392},[374,1554,602],{"class":527},[374,1556,531],{"class":392},[374,1558,1084],{"class":537},[374,1560,571],{"class":392},[374,1562,1089],{"class":527},[374,1564,531],{"class":392},[374,1566,297],{"class":537},[374,1568,507],{"class":392},[374,1570,1098],{"class":537},[374,1572,761],{"class":392},[374,1574,613],{"class":527},[374,1576,531],{"class":392},[374,1578,297],{"class":537},[374,1580,1109],{"class":392},[374,1582,1098],{"class":537},[374,1584,582],{"class":392},[374,1586,1587],{"class":376,"line":1071},[374,1588,625],{"class":392},[294,1590,1591,1593,1594,1597,1598,1601,1602,1605,1606,1609,1610,571],{},[304,1592,916],{}," is ",[311,1595,1596],{},"not"," TUnit's ",[304,1599,1600],{},"[ClassDataSource\u003CT>]",". TUnit's attribute injects an instance of ",[304,1603,1604],{},"T","; AutoFixture's attribute supplies ",[311,1607,1608],{},"rows"," and generates leftover arguments. An empty member or class sequence yields ",[311,1611,1612],{},"no test rows",[333,1614,1616],{"id":1615},"parameter-attributes","Parameter attributes",[294,1618,1619],{},"Apply attributes on test parameters to customize how that parameter (and later parameters) are created.",[1621,1622,1624],"h3",{"id":1623},"frozen","Frozen",[294,1626,1627,1628,1631,1632,1637],{},"Without ",[304,1629,1630],{},"[Frozen]",", each parameter of the same type gets its own anonymous instance. ",[297,1633,1635],{"href":1634},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.frozenattribute",[304,1636,1630],{}," tells AutoFixture: create this parameter once, then reuse that same instance for later requests of a matching type.",[365,1639,1641],{"className":491,"code":1640,"language":493,"meta":370,"style":370},"[Test, AutoDataSource]\npublic async Task Frozen_SharesSameInstance([Frozen] string first, string second)\n{\n    await Assert.That(second).IsEqualTo(first);\n}\n",[304,1642,1643,1655,1685,1689,1713],{"__ignoreMap":370},[374,1644,1645,1647,1649,1651,1653],{"class":376,"line":377},[374,1646,500],{"class":392},[374,1648,504],{"class":503},[374,1650,507],{"class":392},[374,1652,488],{"class":503},[374,1654,512],{"class":392},[374,1656,1657,1659,1661,1663,1666,1668,1670,1673,1675,1677,1679,1681,1683],{"class":376,"line":411},[374,1658,518],{"class":517},[374,1660,521],{"class":517},[374,1662,524],{"class":503},[374,1664,1665],{"class":527}," Frozen_SharesSameInstance",[374,1667,868],{"class":392},[374,1669,1624],{"class":503},[374,1671,1672],{"class":392},"] ",[374,1674,693],{"class":517},[374,1676,696],{"class":537},[374,1678,507],{"class":392},[374,1680,693],{"class":517},[374,1682,703],{"class":537},[374,1684,548],{"class":392},[374,1686,1687],{"class":376,"line":434},[374,1688,553],{"class":392},[374,1690,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711],{"class":376,"line":556},[374,1692,594],{"class":517},[374,1694,597],{"class":537},[374,1696,571],{"class":392},[374,1698,602],{"class":527},[374,1700,531],{"class":392},[374,1702,758],{"class":537},[374,1704,610],{"class":392},[374,1706,613],{"class":527},[374,1708,531],{"class":392},[374,1710,724],{"class":537},[374,1712,582],{"class":392},[374,1714,1715],{"class":376,"line":585},[374,1716,625],{"class":392},[294,1718,1719,1720,1723],{},"Only parameters that come ",[311,1721,1722],{},"after"," the frozen one reuse it. Earlier parameters of the same type stay independent.",[1621,1725,1727],{"id":1726},"frozen-with-matching","Frozen with Matching",[294,1729,1730,1731,1734,1735,1738,1739,1742,1743,1746],{},"By default, freeze matches the ",[311,1732,1733],{},"exact type"," only (",[304,1736,1737],{},"Matching.ExactType","). A frozen ",[304,1740,1741],{},"InMemoryOrderRepository"," would not satisfy an ",[304,1744,1745],{},"IOrderRepository"," constructor parameter.",[294,1748,909,1749,1755],{},[297,1750,1752],{"href":1751},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.matching",[304,1753,1754],{},"Matching"," to widen what the frozen value can satisfy:",[365,1757,1759],{"className":491,"code":1758,"language":493,"meta":370,"style":370},"[Test, AutoDataSource]\npublic async Task Frozen_ByImplementedInterfaces_InjectsConcreteIntoInterface(\n    [Frozen(Matching.ImplementedInterfaces)] InMemoryOrderRepository repository,\n    OrderService sut,\n    Order order)\n{\n    sut.PlaceOrder(order);\n\n    await Assert.That(repository.Saved).Contains(order);\n}\n",[304,1760,1761,1773,1786,1813,1822,1832,1836,1853,1857,1888],{"__ignoreMap":370},[374,1762,1763,1765,1767,1769,1771],{"class":376,"line":377},[374,1764,500],{"class":392},[374,1766,504],{"class":503},[374,1768,507],{"class":392},[374,1770,488],{"class":503},[374,1772,512],{"class":392},[374,1774,1775,1777,1779,1781,1784],{"class":376,"line":411},[374,1776,518],{"class":517},[374,1778,521],{"class":517},[374,1780,524],{"class":503},[374,1782,1783],{"class":527}," Frozen_ByImplementedInterfaces_InjectsConcreteIntoInterface",[374,1785,1037],{"class":392},[374,1787,1788,1791,1793,1795,1797,1799,1802,1805,1807,1810],{"class":376,"line":434},[374,1789,1790],{"class":392},"    [",[374,1792,1624],{"class":503},[374,1794,531],{"class":392},[374,1796,1754],{"class":537},[374,1798,571],{"class":392},[374,1800,1801],{"class":537},"ImplementedInterfaces",[374,1803,1804],{"class":392},")] ",[374,1806,1741],{"class":503},[374,1808,1809],{"class":537}," repository",[374,1811,1812],{"class":392},",\n",[374,1814,1815,1818,1820],{"class":376,"line":556},[374,1816,1817],{"class":503},"    OrderService",[374,1819,545],{"class":537},[374,1821,1812],{"class":392},[374,1823,1824,1827,1830],{"class":376,"line":585},[374,1825,1826],{"class":503},"    Order",[374,1828,1829],{"class":537}," order",[374,1831,548],{"class":392},[374,1833,1834],{"class":376,"line":591},[374,1835,553],{"class":392},[374,1837,1838,1841,1843,1846,1848,1851],{"class":376,"line":622},[374,1839,1840],{"class":537},"    sut",[374,1842,571],{"class":392},[374,1844,1845],{"class":527},"PlaceOrder",[374,1847,531],{"class":392},[374,1849,1850],{"class":537},"order",[374,1852,582],{"class":392},[374,1854,1855],{"class":376,"line":770},[374,1856,588],{"emptyLinePlaceholder":194},[374,1858,1859,1861,1863,1865,1867,1869,1872,1874,1877,1879,1882,1884,1886],{"class":376,"line":1040},[374,1860,594],{"class":517},[374,1862,597],{"class":537},[374,1864,571],{"class":392},[374,1866,602],{"class":527},[374,1868,531],{"class":392},[374,1870,1871],{"class":537},"repository",[374,1873,571],{"class":392},[374,1875,1876],{"class":537},"Saved",[374,1878,610],{"class":392},[374,1880,1881],{"class":527},"Contains",[374,1883,531],{"class":392},[374,1885,1850],{"class":537},[374,1887,582],{"class":392},[374,1889,1890],{"class":376,"line":1066},[374,1891,625],{"class":392},[294,1893,1894,1897,1898,1900,1901,1904,1905,317,1907,1909,1910,571],{},[304,1895,1896],{},"OrderService"," needs ",[304,1899,1745],{},". With ",[304,1902,1903],{},"Matching.ImplementedInterfaces",", the frozen concrete repository is also used wherever that interface is requested — so ",[304,1906,568],{},[304,1908,1871],{}," share one instance and you can assert on ",[304,1911,1912],{},"repository.Saved",[1914,1915,1916,1929],"table",{},[1917,1918,1919],"thead",{},[1920,1921,1922,1926],"tr",{},[1923,1924,1925],"th",{},"Flag",[1923,1927,1928],{},"Matches requests for…",[1930,1931,1932,1943,1953,1962,1972,1982,1992],"tbody",{},[1920,1933,1934,1940],{},[1935,1936,1937],"td",{},[304,1938,1939],{},"ExactType",[1935,1941,1942],{},"The same type as the parameter (default)",[1920,1944,1945,1950],{},[1935,1946,1947],{},[304,1948,1949],{},"DirectBaseType",[1935,1951,1952],{},"The parameter's immediate base type",[1920,1954,1955,1959],{},[1935,1956,1957],{},[304,1958,1801],{},[1935,1960,1961],{},"Interfaces the parameter type implements",[1920,1963,1964,1969],{},[1935,1965,1966],{},[304,1967,1968],{},"ParameterName",[1935,1970,1971],{},"A constructor\u002Fmethod parameter with the same name",[1920,1973,1974,1979],{},[1935,1975,1976],{},[304,1977,1978],{},"PropertyName",[1935,1980,1981],{},"A property with the same name",[1920,1983,1984,1989],{},[1935,1985,1986],{},[304,1987,1988],{},"FieldName",[1935,1990,1991],{},"A field with the same name",[1920,1993,1994,1999],{},[1935,1995,1996],{},[304,1997,1998],{},"MemberName",[1935,2000,2001],{},"Parameter, property, or field with the same name",[294,2003,2004,2005,2008,2009,571],{},"Combine flags with ",[304,2006,2007],{},"|",", for example ",[304,2010,2011],{},"Matching.ExactType | Matching.ImplementedInterfaces",[1621,2013,2015],{"id":2014},"modest-and-greedy","Modest and Greedy",[294,2017,2018,2019,2022],{},"When a type has several constructors, AutoFixture must pick one. For ",[304,2020,2021],{},"MultiCtorProduct"," that means: parameterless, name-only, or name + price.",[338,2024,2025,2044],{},[341,2026,2027,2032,2033,2036,2037,2040,2041,571],{},[311,2028,2029],{},[304,2030,2031],{},"[Modest]"," — prefer the constructor with the ",[311,2034,2035],{},"fewest"," parameters (most modest). Here that is the parameterless constructor, so you get the hard-coded defaults ",[304,2038,2039],{},"\"default\""," \u002F ",[304,2042,2043],{},"0m",[341,2045,2046,2032,2051,2054,2055,2058],{},[311,2047,2048],{},[304,2049,2050],{},"[Greedy]",[311,2052,2053],{},"most"," parameters (greediest). Here that is ",[304,2056,2057],{},"(string name, decimal price)",", so AutoFixture generates anonymous values for both.",[365,2060,2062],{"className":491,"code":2061,"language":493,"meta":370,"style":370},"[Test, AutoDataSource]\npublic async Task ModestAttribute_UsesParameterlessConstructor([Modest] MultiCtorProduct product)\n{\n    await Assert.That(product.Name).IsEqualTo(\"default\");\n    await Assert.That(product.Price).IsEqualTo(0m);\n}\n\n[Test, AutoDataSource]\npublic async Task GreedyAttribute_UsesFullestConstructor([Greedy] MultiCtorProduct product)\n{\n    await Assert.That(string.IsNullOrEmpty(product.Name)).IsFalse();\n    await Assert.That(product.Price).IsNotEqualTo(0m);\n}\n",[304,2063,2064,2076,2101,2105,2135,2164,2168,2172,2184,2208,2212,2244,2273],{"__ignoreMap":370},[374,2065,2066,2068,2070,2072,2074],{"class":376,"line":377},[374,2067,500],{"class":392},[374,2069,504],{"class":503},[374,2071,507],{"class":392},[374,2073,488],{"class":503},[374,2075,512],{"class":392},[374,2077,2078,2080,2082,2084,2087,2089,2092,2094,2096,2099],{"class":376,"line":411},[374,2079,518],{"class":517},[374,2081,521],{"class":517},[374,2083,524],{"class":503},[374,2085,2086],{"class":527}," ModestAttribute_UsesParameterlessConstructor",[374,2088,868],{"class":392},[374,2090,2091],{"class":503},"Modest",[374,2093,1672],{"class":392},[374,2095,2021],{"class":503},[374,2097,2098],{"class":537}," product",[374,2100,548],{"class":392},[374,2102,2103],{"class":376,"line":434},[374,2104,553],{"class":392},[374,2106,2107,2109,2111,2113,2115,2117,2120,2122,2125,2127,2129,2131,2133],{"class":376,"line":556},[374,2108,594],{"class":517},[374,2110,597],{"class":537},[374,2112,571],{"class":392},[374,2114,602],{"class":527},[374,2116,531],{"class":392},[374,2118,2119],{"class":537},"product",[374,2121,571],{"class":392},[374,2123,2124],{"class":537},"Name",[374,2126,610],{"class":392},[374,2128,613],{"class":527},[374,2130,531],{"class":392},[374,2132,2039],{"class":656},[374,2134,582],{"class":392},[374,2136,2137,2139,2141,2143,2145,2147,2149,2151,2154,2156,2158,2160,2162],{"class":376,"line":585},[374,2138,594],{"class":517},[374,2140,597],{"class":537},[374,2142,571],{"class":392},[374,2144,602],{"class":527},[374,2146,531],{"class":392},[374,2148,2119],{"class":537},[374,2150,571],{"class":392},[374,2152,2153],{"class":537},"Price",[374,2155,610],{"class":392},[374,2157,613],{"class":527},[374,2159,531],{"class":392},[374,2161,2043],{"class":804},[374,2163,582],{"class":392},[374,2165,2166],{"class":376,"line":591},[374,2167,625],{"class":392},[374,2169,2170],{"class":376,"line":622},[374,2171,588],{"emptyLinePlaceholder":194},[374,2173,2174,2176,2178,2180,2182],{"class":376,"line":770},[374,2175,500],{"class":392},[374,2177,504],{"class":503},[374,2179,507],{"class":392},[374,2181,488],{"class":503},[374,2183,512],{"class":392},[374,2185,2186,2188,2190,2192,2195,2197,2200,2202,2204,2206],{"class":376,"line":1040},[374,2187,518],{"class":517},[374,2189,521],{"class":517},[374,2191,524],{"class":503},[374,2193,2194],{"class":527}," GreedyAttribute_UsesFullestConstructor",[374,2196,868],{"class":392},[374,2198,2199],{"class":503},"Greedy",[374,2201,1672],{"class":392},[374,2203,2021],{"class":503},[374,2205,2098],{"class":537},[374,2207,548],{"class":392},[374,2209,2210],{"class":376,"line":1066},[374,2211,553],{"class":392},[374,2213,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242],{"class":376,"line":1071},[374,2215,594],{"class":517},[374,2217,597],{"class":537},[374,2219,571],{"class":392},[374,2221,602],{"class":527},[374,2223,531],{"class":392},[374,2225,693],{"class":517},[374,2227,571],{"class":392},[374,2229,753],{"class":527},[374,2231,531],{"class":392},[374,2233,2119],{"class":537},[374,2235,571],{"class":392},[374,2237,2124],{"class":537},[374,2239,761],{"class":392},[374,2241,764],{"class":527},[374,2243,767],{"class":392},[374,2245,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2267,2269,2271],{"class":376,"line":1116},[374,2247,594],{"class":517},[374,2249,597],{"class":537},[374,2251,571],{"class":392},[374,2253,602],{"class":527},[374,2255,531],{"class":392},[374,2257,2119],{"class":537},[374,2259,571],{"class":392},[374,2261,2153],{"class":537},[374,2263,610],{"class":392},[374,2265,2266],{"class":527},"IsNotEqualTo",[374,2268,531],{"class":392},[374,2270,2043],{"class":804},[374,2272,582],{"class":392},[374,2274,2275],{"class":376,"line":1121},[374,2276,625],{"class":392},[294,2278,2279,2280,2283,2284,571],{},"You can combine attributes on one parameter, for example ",[304,2281,2282],{},"[Frozen][Greedy]",". See also ",[297,2285,56],{"href":57},[1621,2287,2289],{"id":2288},"noautoproperties","NoAutoProperties",[294,2291,2292,2293,2299,2300,2303,2304,610],{},"By default, after construction AutoFixture assigns anonymous values to writable public properties. ",[297,2294,2296],{"href":2295},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.noautopropertiesattribute",[304,2297,2298],{},"[NoAutoProperties]"," turns that off for the parameter's type — the instance is created, but properties keep their type defaults (here ",[304,2301,2302],{},"string.Empty"," for ",[304,2305,2124],{},[365,2307,2309],{"className":491,"code":2308,"language":493,"meta":370,"style":370},"[Test, AutoDataSource]\npublic async Task NoAutoProperties_LeavesWritablePropertiesUnset([NoAutoProperties] Person person)\n{\n    await Assert.That(person.Name).IsEqualTo(string.Empty);\n}\n",[304,2310,2311,2323,2348,2352,2386],{"__ignoreMap":370},[374,2312,2313,2315,2317,2319,2321],{"class":376,"line":377},[374,2314,500],{"class":392},[374,2316,504],{"class":503},[374,2318,507],{"class":392},[374,2320,488],{"class":503},[374,2322,512],{"class":392},[374,2324,2325,2327,2329,2331,2334,2336,2338,2340,2343,2346],{"class":376,"line":411},[374,2326,518],{"class":517},[374,2328,521],{"class":517},[374,2330,524],{"class":503},[374,2332,2333],{"class":527}," NoAutoProperties_LeavesWritablePropertiesUnset",[374,2335,868],{"class":392},[374,2337,2289],{"class":503},[374,2339,1672],{"class":392},[374,2341,2342],{"class":503},"Person",[374,2344,2345],{"class":537}," person",[374,2347,548],{"class":392},[374,2349,2350],{"class":376,"line":434},[374,2351,553],{"class":392},[374,2353,2354,2356,2358,2360,2362,2364,2367,2369,2371,2373,2375,2377,2379,2381,2384],{"class":376,"line":556},[374,2355,594],{"class":517},[374,2357,597],{"class":537},[374,2359,571],{"class":392},[374,2361,602],{"class":527},[374,2363,531],{"class":392},[374,2365,2366],{"class":537},"person",[374,2368,571],{"class":392},[374,2370,2124],{"class":537},[374,2372,610],{"class":392},[374,2374,613],{"class":527},[374,2376,531],{"class":392},[374,2378,693],{"class":517},[374,2380,571],{"class":392},[374,2382,2383],{"class":537},"Empty",[374,2385,582],{"class":392},[374,2387,2388],{"class":376,"line":585},[374,2389,625],{"class":392},[1621,2391,2393],{"id":2392},"favorarrays-favorlists-and-favorenumerables","FavorArrays, FavorLists, and FavorEnumerables",[294,2395,2396,2397,2400],{},"Like Modest\u002FGreedy, these change ",[311,2398,2399],{},"which constructor"," is chosen when a type overloads constructors that take different collection shapes:",[338,2402,2403,2415,2426],{},[341,2404,2405,2410,2411,2414],{},[311,2406,2407],{},[304,2408,2409],{},"[FavorArrays]"," — prefer a constructor that takes an array (",[304,2412,2413],{},"T[]",")",[341,2416,2417,2422,2423],{},[311,2418,2419],{},[304,2420,2421],{},"[FavorLists]"," — prefer a constructor that takes ",[304,2424,2425],{},"IList\u003CT>",[341,2427,2428,2422,2433],{},[311,2429,2430],{},[304,2431,2432],{},"[FavorEnumerables]",[304,2434,2435],{},"IEnumerable\u003CT>",[294,2437,2438],{},"Use them when the type exposes several collection constructors and the default choice is not the one your test needs.",[1621,2440,2442],{"id":2441},"custom-parameter-attribute","Custom parameter attribute",[294,2444,2445,2446,2452,2453,2456,2457,2460],{},"Subclass ",[297,2447,2449],{"href":2448},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.customizeattribute",[304,2450,2451],{},"CustomizeAttribute"," and return an ",[304,2454,2455],{},"ICustomization"," from ",[304,2458,2459],{},"GetCustomization",". AutoFixture applies it when resolving that parameter:",[365,2462,2464],{"className":491,"code":2463,"language":493,"meta":370,"style":370},"using System.Reflection;\nusing AutoFixture;\nusing AutoFixture.TUnit;\n\npublic sealed class NamedAttribute(string name) : CustomizeAttribute\n{\n    public override ICustomization GetCustomization(ParameterInfo parameter)\n    {\n        ArgumentNullException.ThrowIfNull(parameter);\n\n        return new NamedCustomization(name);\n    }\n\n    private sealed class NamedCustomization(string value) : ICustomization\n    {\n        public void Customize(IFixture fixture) => fixture.Inject(value);\n    }\n}\n\n[Test, AutoDataSource]\npublic async Task CustomParameterAttribute_InjectsConfiguredValue([Named(\"widget\")] string name)\n{\n    await Assert.That(name).IsEqualTo(\"widget\");\n}\n",[304,2465,2466,2482,2491,2503,2507,2532,2536,2559,2563,2580,2584,2602,2606,2610,2633,2637,2674,2678,2682,2686,2698,2727,2731,2755],{"__ignoreMap":370},[374,2467,2468,2471,2474,2476,2479],{"class":376,"line":377},[374,2469,2470],{"class":1302},"using",[374,2472,2473],{"class":503}," System",[374,2475,571],{"class":392},[374,2477,2478],{"class":503},"Reflection",[374,2480,2481],{"class":392},";\n",[374,2483,2484,2486,2489],{"class":376,"line":411},[374,2485,2470],{"class":1302},[374,2487,2488],{"class":503}," AutoFixture",[374,2490,2481],{"class":392},[374,2492,2493,2495,2497,2499,2501],{"class":376,"line":434},[374,2494,2470],{"class":1302},[374,2496,2488],{"class":503},[374,2498,571],{"class":392},[374,2500,130],{"class":503},[374,2502,2481],{"class":392},[374,2504,2505],{"class":376,"line":556},[374,2506,588],{"emptyLinePlaceholder":194},[374,2508,2509,2511,2514,2516,2519,2521,2523,2526,2529],{"class":376,"line":585},[374,2510,518],{"class":517},[374,2512,2513],{"class":517}," sealed",[374,2515,1246],{"class":517},[374,2517,2518],{"class":503}," NamedAttribute",[374,2520,531],{"class":392},[374,2522,693],{"class":517},[374,2524,2525],{"class":537}," name",[374,2527,2528],{"class":392},") : ",[374,2530,2531],{"class":503},"CustomizeAttribute\n",[374,2533,2534],{"class":376,"line":591},[374,2535,553],{"class":392},[374,2537,2538,2540,2543,2546,2549,2551,2554,2557],{"class":376,"line":622},[374,2539,1274],{"class":517},[374,2541,2542],{"class":517}," override",[374,2544,2545],{"class":503}," ICustomization",[374,2547,2548],{"class":527}," GetCustomization",[374,2550,531],{"class":392},[374,2552,2553],{"class":503},"ParameterInfo",[374,2555,2556],{"class":537}," parameter",[374,2558,548],{"class":392},[374,2560,2561],{"class":376,"line":770},[374,2562,1296],{"class":392},[374,2564,2565,2568,2570,2573,2575,2578],{"class":376,"line":1040},[374,2566,2567],{"class":537},"        ArgumentNullException",[374,2569,571],{"class":392},[374,2571,2572],{"class":527},"ThrowIfNull",[374,2574,531],{"class":392},[374,2576,2577],{"class":537},"parameter",[374,2579,582],{"class":392},[374,2581,2582],{"class":376,"line":1066},[374,2583,588],{"emptyLinePlaceholder":194},[374,2585,2586,2589,2592,2595,2597,2600],{"class":376,"line":1071},[374,2587,2588],{"class":1302},"        return",[374,2590,2591],{"class":517}," new",[374,2593,2594],{"class":503}," NamedCustomization",[374,2596,531],{"class":392},[374,2598,2599],{"class":537},"name",[374,2601,582],{"class":392},[374,2603,2604],{"class":376,"line":1116},[374,2605,1342],{"class":392},[374,2607,2608],{"class":376,"line":1121},[374,2609,588],{"emptyLinePlaceholder":194},[374,2611,2612,2615,2617,2619,2621,2623,2625,2628,2630],{"class":376,"line":1126},[374,2613,2614],{"class":517},"    private",[374,2616,2513],{"class":517},[374,2618,1246],{"class":517},[374,2620,2594],{"class":503},[374,2622,531],{"class":392},[374,2624,693],{"class":517},[374,2626,2627],{"class":537}," value",[374,2629,2528],{"class":392},[374,2631,2632],{"class":503},"ICustomization\n",[374,2634,2635],{"class":376,"line":1150},[374,2636,1296],{"class":392},[374,2638,2639,2642,2645,2648,2650,2653,2656,2659,2662,2664,2667,2669,2672],{"class":376,"line":1164},[374,2640,2641],{"class":517},"        public",[374,2643,2644],{"class":517}," void",[374,2646,2647],{"class":527}," Customize",[374,2649,531],{"class":392},[374,2651,2652],{"class":503},"IFixture",[374,2654,2655],{"class":537}," fixture",[374,2657,2658],{"class":392},") => ",[374,2660,2661],{"class":537},"fixture",[374,2663,571],{"class":392},[374,2665,2666],{"class":527},"Inject",[374,2668,531],{"class":392},[374,2670,2671],{"class":537},"value",[374,2673,582],{"class":392},[374,2675,2676],{"class":376,"line":1185},[374,2677,1342],{"class":392},[374,2679,2680],{"class":376,"line":1190},[374,2681,625],{"class":392},[374,2683,2684],{"class":376,"line":1231},[374,2685,588],{"emptyLinePlaceholder":194},[374,2687,2688,2690,2692,2694,2696],{"class":376,"line":1236},[374,2689,500],{"class":392},[374,2691,504],{"class":503},[374,2693,507],{"class":392},[374,2695,488],{"class":503},[374,2697,512],{"class":392},[374,2699,2700,2702,2704,2706,2709,2711,2714,2716,2719,2721,2723,2725],{"class":376,"line":1241},[374,2701,518],{"class":517},[374,2703,521],{"class":517},[374,2705,524],{"class":503},[374,2707,2708],{"class":527}," CustomParameterAttribute_InjectsConfiguredValue",[374,2710,868],{"class":392},[374,2712,2713],{"class":503},"Named",[374,2715,531],{"class":392},[374,2717,2718],{"class":656},"\"widget\"",[374,2720,1804],{"class":392},[374,2722,693],{"class":517},[374,2724,2525],{"class":537},[374,2726,548],{"class":392},[374,2728,2729],{"class":376,"line":1266},[374,2730,553],{"class":392},[374,2732,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753],{"class":376,"line":1271},[374,2734,594],{"class":517},[374,2736,597],{"class":537},[374,2738,571],{"class":392},[374,2740,602],{"class":527},[374,2742,531],{"class":392},[374,2744,2599],{"class":537},[374,2746,610],{"class":392},[374,2748,613],{"class":527},[374,2750,531],{"class":392},[374,2752,2718],{"class":656},[374,2754,582],{"class":392},[374,2756,2757],{"class":376,"line":1293},[374,2758,625],{"class":392},[294,2760,2761,2764,2765,2767,2768,2770],{},[304,2762,2763],{},"[Named(\"widget\")]"," injects the fixed string ",[304,2766,2718],{}," for that parameter instead of an anonymous value. Use custom attributes for team-specific rules that do not already exist as built-ins. Combine with ",[304,2769,1630],{}," when later parameters should reuse the same value.",[333,2772,2774],{"id":2773},"custom-autodatasource-attribute","Custom AutoDataSource attribute",[294,2776,2777,2778,2781],{},"When tests need the same fixture setup (for example AutoMoq), define a custom attribute instead of repeating ",[304,2779,2780],{},"Customize"," in every test.",[294,2783,2784,2785,2787,2788,2790,2791,2794,2795,2797],{},"Add ",[311,2786,217],{}," ",[304,2789,201],{}," when the factory uses ",[304,2792,2793],{},"AutoMoqCustomization",". The ",[297,2796,114],{"href":115}," guide documents the same customization on AutoFixture 5 — keep AutoFixture and AutoMoq on matching major versions.",[365,2799,2801],{"className":491,"code":2800,"language":493,"meta":370,"style":370},"public class AutoMoqDataSourceAttribute : AutoDataSourceAttribute\n{\n    public AutoMoqDataSourceAttribute()\n        : base(() => new Fixture().Customize(new AutoMoqCustomization()))\n    {\n    }\n}\n\n[Test, AutoMoqDataSource]\npublic async Task CustomAutoDataSource_UsesFixtureFactory(OrderService service, Order order)\n{\n    await Assert.That(service).IsNotNull();\n\n    await Assert.That(() => service.PlaceOrder(order)).ThrowsNothing();\n}\n",[304,2802,2803,2817,2821,2829,2861,2865,2869,2873,2877,2890,2917,2921,2942,2946,2975],{"__ignoreMap":370},[374,2804,2805,2807,2809,2812,2814],{"class":376,"line":377},[374,2806,518],{"class":517},[374,2808,1246],{"class":517},[374,2810,2811],{"class":503}," AutoMoqDataSourceAttribute",[374,2813,1252],{"class":392},[374,2815,2816],{"class":503},"AutoDataSourceAttribute\n",[374,2818,2819],{"class":376,"line":411},[374,2820,553],{"class":392},[374,2822,2823,2825,2827],{"class":376,"line":434},[374,2824,1274],{"class":517},[374,2826,2811],{"class":527},[374,2828,1290],{"class":392},[374,2830,2831,2834,2837,2840,2843,2846,2849,2851,2853,2855,2858],{"class":376,"line":556},[374,2832,2833],{"class":392},"        : ",[374,2835,2836],{"class":517},"base",[374,2838,2839],{"class":392},"(() => ",[374,2841,2842],{"class":517},"new",[374,2844,2845],{"class":503}," Fixture",[374,2847,2848],{"class":392},"().",[374,2850,2780],{"class":527},[374,2852,531],{"class":392},[374,2854,2842],{"class":517},[374,2856,2857],{"class":503}," AutoMoqCustomization",[374,2859,2860],{"class":392},"()))\n",[374,2862,2863],{"class":376,"line":585},[374,2864,1296],{"class":392},[374,2866,2867],{"class":376,"line":591},[374,2868,1342],{"class":392},[374,2870,2871],{"class":376,"line":622},[374,2872,625],{"class":392},[374,2874,2875],{"class":376,"line":770},[374,2876,588],{"emptyLinePlaceholder":194},[374,2878,2879,2881,2883,2885,2888],{"class":376,"line":1040},[374,2880,500],{"class":392},[374,2882,504],{"class":503},[374,2884,507],{"class":392},[374,2886,2887],{"class":503},"AutoMoqDataSource",[374,2889,512],{"class":392},[374,2891,2892,2894,2896,2898,2901,2903,2905,2908,2910,2913,2915],{"class":376,"line":1066},[374,2893,518],{"class":517},[374,2895,521],{"class":517},[374,2897,524],{"class":503},[374,2899,2900],{"class":527}," CustomAutoDataSource_UsesFixtureFactory",[374,2902,531],{"class":392},[374,2904,1896],{"class":503},[374,2906,2907],{"class":537}," service",[374,2909,507],{"class":392},[374,2911,2912],{"class":503},"Order",[374,2914,1829],{"class":537},[374,2916,548],{"class":392},[374,2918,2919],{"class":376,"line":1071},[374,2920,553],{"class":392},[374,2922,2923,2925,2927,2929,2931,2933,2936,2938,2940],{"class":376,"line":1116},[374,2924,594],{"class":517},[374,2926,597],{"class":537},[374,2928,571],{"class":392},[374,2930,602],{"class":527},[374,2932,531],{"class":392},[374,2934,2935],{"class":537},"service",[374,2937,610],{"class":392},[374,2939,896],{"class":527},[374,2941,767],{"class":392},[374,2943,2944],{"class":376,"line":1121},[374,2945,588],{"emptyLinePlaceholder":194},[374,2947,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2973],{"class":376,"line":1126},[374,2949,594],{"class":517},[374,2951,597],{"class":537},[374,2953,571],{"class":392},[374,2955,602],{"class":527},[374,2957,2839],{"class":392},[374,2959,2935],{"class":537},[374,2961,571],{"class":392},[374,2963,1845],{"class":527},[374,2965,531],{"class":392},[374,2967,1850],{"class":537},[374,2969,761],{"class":392},[374,2971,2972],{"class":527},"ThrowsNothing",[374,2974,767],{"class":392},[374,2976,2977],{"class":376,"line":1150},[374,2978,625],{"class":392},[294,2980,2445,2981,2984,2985,2988],{},[304,2982,2983],{},"AutoDataSourceAttribute"," and pass a factory ",[304,2986,2987],{},"Func\u003CIFixture>"," to the base constructor. The factory runs once per test case and supplies the configured fixture; parameters are resolved from that fixture.",[333,2990,2992],{"id":2991},"custom-autoarguments-attribute","Custom AutoArguments attribute",[294,2994,2445,2995,2998],{},[304,2996,2997],{},"AutoArgumentsAttribute"," the same way — pass a fixture factory plus the inline values:",[365,3000,3002],{"className":491,"code":3001,"language":493,"meta":370,"style":370},"public class AutoMoqArgumentsAttribute : AutoArgumentsAttribute\n{\n    public AutoMoqArgumentsAttribute(params object?[] values)\n        : base(() => new Fixture().Customize(new AutoMoqCustomization()), values)\n    {\n    }\n}\n\n[Test]\n[AutoMoqArguments(42)]\npublic async Task CustomAutoArguments_MixesExplicitValuesWithCustomFixture(\n    int orderId,\n    OrderService service,\n    string productName)\n{\n    await Assert.That(orderId).IsEqualTo(42);\n    await Assert.That(service).IsNotNull();\n    await Assert.That(string.IsNullOrEmpty(productName)).IsFalse();\n\n    await Assert.That(() => service.PlaceOrder(new Order(orderId, productName))).ThrowsNothing();\n}\n",[304,3003,3004,3018,3022,3043,3072,3076,3080,3084,3088,3096,3110,3123,3132,3140,3150,3154,3179,3199,3228,3232,3272],{"__ignoreMap":370},[374,3005,3006,3008,3010,3013,3015],{"class":376,"line":377},[374,3007,518],{"class":517},[374,3009,1246],{"class":517},[374,3011,3012],{"class":503}," AutoMoqArgumentsAttribute",[374,3014,1252],{"class":392},[374,3016,3017],{"class":503},"AutoArgumentsAttribute\n",[374,3019,3020],{"class":376,"line":411},[374,3021,553],{"class":392},[374,3023,3024,3026,3028,3030,3033,3036,3039,3041],{"class":376,"line":434},[374,3025,1274],{"class":517},[374,3027,3012],{"class":527},[374,3029,531],{"class":392},[374,3031,3032],{"class":517},"params",[374,3034,3035],{"class":517}," object",[374,3037,3038],{"class":392},"?[] ",[374,3040,834],{"class":537},[374,3042,548],{"class":392},[374,3044,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3068,3070],{"class":376,"line":556},[374,3046,2833],{"class":392},[374,3048,2836],{"class":517},[374,3050,2839],{"class":392},[374,3052,2842],{"class":517},[374,3054,2845],{"class":503},[374,3056,2848],{"class":392},[374,3058,2780],{"class":527},[374,3060,531],{"class":392},[374,3062,2842],{"class":517},[374,3064,2857],{"class":503},[374,3066,3067],{"class":392},"()), ",[374,3069,834],{"class":537},[374,3071,548],{"class":392},[374,3073,3074],{"class":376,"line":585},[374,3075,1296],{"class":392},[374,3077,3078],{"class":376,"line":591},[374,3079,1342],{"class":392},[374,3081,3082],{"class":376,"line":622},[374,3083,625],{"class":392},[374,3085,3086],{"class":376,"line":770},[374,3087,588],{"emptyLinePlaceholder":194},[374,3089,3090,3092,3094],{"class":376,"line":1040},[374,3091,500],{"class":392},[374,3093,504],{"class":503},[374,3095,512],{"class":392},[374,3097,3098,3100,3103,3105,3108],{"class":376,"line":1066},[374,3099,500],{"class":392},[374,3101,3102],{"class":503},"AutoMoqArguments",[374,3104,531],{"class":392},[374,3106,3107],{"class":804},"42",[374,3109,660],{"class":392},[374,3111,3112,3114,3116,3118,3121],{"class":376,"line":1071},[374,3113,518],{"class":517},[374,3115,521],{"class":517},[374,3117,524],{"class":503},[374,3119,3120],{"class":527}," CustomAutoArguments_MixesExplicitValuesWithCustomFixture",[374,3122,1037],{"class":392},[374,3124,3125,3127,3130],{"class":376,"line":1116},[374,3126,1043],{"class":517},[374,3128,3129],{"class":537}," orderId",[374,3131,1812],{"class":392},[374,3133,3134,3136,3138],{"class":376,"line":1121},[374,3135,1817],{"class":503},[374,3137,2907],{"class":537},[374,3139,1812],{"class":392},[374,3141,3142,3145,3148],{"class":376,"line":1126},[374,3143,3144],{"class":517},"    string",[374,3146,3147],{"class":537}," productName",[374,3149,548],{"class":392},[374,3151,3152],{"class":376,"line":1150},[374,3153,553],{"class":392},[374,3155,3156,3158,3160,3162,3164,3166,3169,3171,3173,3175,3177],{"class":376,"line":1164},[374,3157,594],{"class":517},[374,3159,597],{"class":537},[374,3161,571],{"class":392},[374,3163,602],{"class":527},[374,3165,531],{"class":392},[374,3167,3168],{"class":537},"orderId",[374,3170,610],{"class":392},[374,3172,613],{"class":527},[374,3174,531],{"class":392},[374,3176,3107],{"class":804},[374,3178,582],{"class":392},[374,3180,3181,3183,3185,3187,3189,3191,3193,3195,3197],{"class":376,"line":1185},[374,3182,594],{"class":517},[374,3184,597],{"class":537},[374,3186,571],{"class":392},[374,3188,602],{"class":527},[374,3190,531],{"class":392},[374,3192,2935],{"class":537},[374,3194,610],{"class":392},[374,3196,896],{"class":527},[374,3198,767],{"class":392},[374,3200,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3222,3224,3226],{"class":376,"line":1190},[374,3202,594],{"class":517},[374,3204,597],{"class":537},[374,3206,571],{"class":392},[374,3208,602],{"class":527},[374,3210,531],{"class":392},[374,3212,693],{"class":517},[374,3214,571],{"class":392},[374,3216,753],{"class":527},[374,3218,531],{"class":392},[374,3220,3221],{"class":537},"productName",[374,3223,761],{"class":392},[374,3225,764],{"class":527},[374,3227,767],{"class":392},[374,3229,3230],{"class":376,"line":1231},[374,3231,588],{"emptyLinePlaceholder":194},[374,3233,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3257,3259,3261,3263,3265,3268,3270],{"class":376,"line":1236},[374,3235,594],{"class":517},[374,3237,597],{"class":537},[374,3239,571],{"class":392},[374,3241,602],{"class":527},[374,3243,2839],{"class":392},[374,3245,2935],{"class":537},[374,3247,571],{"class":392},[374,3249,1845],{"class":527},[374,3251,531],{"class":392},[374,3253,2842],{"class":517},[374,3255,3256],{"class":503}," Order",[374,3258,531],{"class":392},[374,3260,3168],{"class":537},[374,3262,507],{"class":392},[374,3264,3221],{"class":537},[374,3266,3267],{"class":392},"))).",[374,3269,2972],{"class":527},[374,3271,767],{"class":392},[374,3273,3274],{"class":376,"line":1241},[374,3275,625],{"class":392},[294,3277,3278],{},"Explicit values still fill parameters left-to-right; AutoFixture fills the rest from the customized fixture.",[333,3280,3282],{"id":3281},"how-it-works","How it works",[338,3284,3285,3295,3308,3319,3329,3338,3345,3356,3367],{},[341,3286,3287,3291,3292,3294],{},[311,3288,3289],{},[304,3290,316],{}," — TUnit ",[304,3293,306],{}," methods get anonymous parameters from AutoFixture",[341,3296,3297,2040,3302,3307],{},[311,3298,3299],{},[304,3300,3301],{},"[AutoArguments(...)]",[311,3303,3304],{},[304,3305,3306],{},"[AutoArguments\u003CT>(...)]"," — explicit inline values fill parameters left-to-right; AutoFixture generates the rest",[341,3309,3310,2040,3314,3318],{},[311,3311,3312],{},[304,3313,912],{},[311,3315,3316],{},[304,3317,916],{}," — member or class rows supply some columns; AutoFixture fills the rest",[341,3320,3321,3328],{},[311,3322,3323,2040,3325],{},[304,3324,1630],{},[304,3326,3327],{},"[Frozen(Matching...)]"," — create once; reuse for later matching requests (exact type, interfaces, names, …)",[341,3330,3331,3337],{},[311,3332,3333,2040,3335],{},[304,3334,2031],{},[304,3336,2050],{}," — fewest vs most constructor parameters",[341,3339,3340,3344],{},[311,3341,3342],{},[304,3343,2298],{}," — construct without filling writable properties",[341,3346,3347,3355],{},[311,3348,3349,2040,3351,2040,3353],{},[304,3350,2409],{},[304,3352,2421],{},[304,3354,2432],{}," — prefer constructors that take that collection shape",[341,3357,3358,3363,3364,3366],{},[311,3359,3360,3361],{},"Custom ",[304,3362,2451],{}," — return an ",[304,3365,2455],{}," for that parameter",[341,3368,2445,3369,3371,3372,3374],{},[304,3370,2983],{}," or ",[304,3373,2997],{}," to share fixture setup across tests",[333,3376,3378],{"id":3377},"next-steps","Next steps",[338,3380,3381,3386,3390,3394,3398,3402,3406,3410],{},[341,3382,3383],{},[297,3384,3385],{"href":102},"Integrations overview",[341,3387,3388],{},[297,3389,110],{"href":111},[341,3391,3392],{},[297,3393,118],{"href":119},[341,3395,3396],{},[297,3397,114],{"href":115},[341,3399,3400],{},[297,3401,56],{"href":57},[341,3403,3404],{},[297,3405,78],{"href":79},[341,3407,3408],{},[297,3409,161],{"href":162},[341,3411,3412],{},[297,3413,173],{"href":174},[333,3415,3417],{"id":3416},"api","API",[338,3419,3420,3426,3433,3440,3448,3456,3463,3469,3477,3485,3492,3500,3508,3516],{},[341,3421,3422],{},[297,3423,3425],{"href":3424},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001","AutoFixture.TUnit package",[341,3427,3428],{},[297,3429,3431],{"href":3430},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.autodatasourceattribute",[304,3432,2983],{},[341,3434,3435],{},[297,3436,3438],{"href":3437},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.autoargumentsattribute",[304,3439,2997],{},[341,3441,3442],{},[297,3443,3445],{"href":3444},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.automemberdatasourceattribute",[304,3446,3447],{},"AutoMemberDataSourceAttribute",[341,3449,3450],{},[297,3451,3453],{"href":3452},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.autoclassdatasourceattribute",[304,3454,3455],{},"AutoClassDataSourceAttribute",[341,3457,3458],{},[297,3459,3460],{"href":1634},[304,3461,3462],{},"FrozenAttribute",[341,3464,3465],{},[297,3466,3467],{"href":1751},[304,3468,1754],{},[341,3470,3471],{},[297,3472,3474],{"href":3473},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.modestattribute",[304,3475,3476],{},"ModestAttribute",[341,3478,3479],{},[297,3480,3482],{"href":3481},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.greedyattribute",[304,3483,3484],{},"GreedyAttribute",[341,3486,3487],{},[297,3488,3489],{"href":2295},[304,3490,3491],{},"NoAutoPropertiesAttribute",[341,3493,3494],{},[297,3495,3497],{"href":3496},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.favorarraysattribute",[304,3498,3499],{},"FavorArraysAttribute",[341,3501,3502],{},[297,3503,3505],{"href":3504},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.favorlistsattribute",[304,3506,3507],{},"FavorListsAttribute",[341,3509,3510],{},[297,3511,3513],{"href":3512},"\u002Fapi\u002Ftunit\u002F0-1-0-preview0001\u002Fautofixture.tunit.favorenumerablesattribute",[304,3514,3515],{},"FavorEnumerablesAttribute",[341,3517,3518],{},[297,3519,3520],{"href":2448},[304,3521,2451],{},[3523,3524,3525],"style",{},"html pre.shiki code .s9Xrk, html code.shiki .s9Xrk{--shiki-light:#800000;--shiki-default:#800000;--shiki-dark:#808080}html pre.shiki code .swrg_, html code.shiki .swrg_{--shiki-light:#800000;--shiki-default:#800000;--shiki-dark:#569CD6}html pre.shiki code .ssBXb, html code.shiki .ssBXb{--shiki-light:#E50000;--shiki-default:#E50000;--shiki-dark:#9CDCFE}html pre.shiki code .s_Yst, html code.shiki .s_Yst{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#D4D4D4}html pre.shiki code .swG-L, html code.shiki .swG-L{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#CE9178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sopvc, html code.shiki .sopvc{--shiki-light:#267F99;--shiki-default:#267F99;--shiki-dark:#4EC9B0}html pre.shiki code .stxUP, html code.shiki .stxUP{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#569CD6}html pre.shiki code .swoLU, html code.shiki .swoLU{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#DCDCAA}html pre.shiki code .sswaR, html code.shiki .sswaR{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#9CDCFE}html pre.shiki code .sFD8J, html code.shiki .sFD8J{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#CE9178}html pre.shiki code .s-S-M, html code.shiki .s-S-M{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#B5CEA8}html pre.shiki code .smUd-, html code.shiki .smUd-{--shiki-light:#AF00DB;--shiki-default:#AF00DB;--shiki-dark:#C586C0}",{"title":370,"searchDepth":411,"depth":411,"links":3527},[3528,3529,3530,3531,3532,3533,3534,3542,3543,3544,3545,3546],{"id":335,"depth":411,"text":336},{"id":362,"depth":411,"text":363},{"id":472,"depth":411,"text":473},{"id":487,"depth":411,"text":488},{"id":628,"depth":411,"text":629},{"id":905,"depth":411,"text":906},{"id":1615,"depth":411,"text":1616,"children":3535},[3536,3537,3538,3539,3540,3541],{"id":1623,"depth":434,"text":1624},{"id":1726,"depth":434,"text":1727},{"id":2014,"depth":434,"text":2015},{"id":2288,"depth":434,"text":2289},{"id":2392,"depth":434,"text":2393},{"id":2441,"depth":434,"text":2442},{"id":2773,"depth":411,"text":2774},{"id":2991,"depth":411,"text":2992},{"id":3281,"depth":411,"text":3282},{"id":3377,"depth":411,"text":3378},{"id":3416,"depth":411,"text":3417},"Use AutoDataSource, AutoArguments, and parameter attributes with TUnit test projects.","md",{},{"title":130,"description":3547},"2026-09-08","8cAGfMWc7N4547lBStwbWfxPMmgIzU2iydxx4ai14IQ",[3554,3555],{"title":126,"path":127,"stem":128,"children":-1},{"title":106,"path":144,"stem":145,"children":-1},1788856649857]