[{"data":1,"prerenderedAt":2605},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Fintegrations\u002Fxunit3":287,"docs:\u002Fdocs\u002Fintegrations\u002Fxunit3-surround":2602},[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":110,"badge":11,"body":289,"description":2597,"extension":2598,"meta":2599,"navigation":194,"path":111,"seo":2600,"stem":112,"updated":11,"__hash__":2601},"docs\u002Fdocs\u002F5.integrations\u002F01.xunit3.md",{"type":290,"value":291,"toc":2577},"minimark",[292,312,326,331,345,349,439,447,451,462,466,591,595,598,723,727,730,735,748,820,827,831,850,860,991,1012,1101,1111,1115,1122,1157,1351,1360,1364,1380,1456,1460,1467,1502,1505,1509,1527,1833,1845,1849,1856,1865,2063,2073,2077,2086,2367,2370,2374,2447,2451,2482,2486,2573],[293,294,295,302,303,307,308,311],"p",{},[296,297,301],"a",{"href":298,"rel":299},"https:\u002F\u002Fxunit.net\u002F",[300],"nofollow","xUnit.net"," is a popular .NET unit testing framework. Theories and facts take parameters; you normally supply those values yourself (or with ",[304,305,306],"code",{},"[InlineData]"," \u002F ",[304,309,310],{},"[MemberData]",").",[293,313,314,317,318,321,322,325],{},[315,316,283],"strong",{}," connects AutoFixture to xUnit.net 3. Attributes such as ",[304,319,320],{},"[AutoData]"," and ",[304,323,324],{},"[InlineAutoData]"," fill theory parameters with anonymous specimens so you skip most of the arrange setup.",[327,328,330],"h2",{"id":329},"prerequisites","Prerequisites",[332,333,334,338,343],"ul",{},[335,336,337],"li",{},".NET 8+ test project",[335,339,340,342],{},[296,341,193],{"href":22}," 5.0.0-rc.1",[335,344,110],{},[327,346,348],{"id":347},"install","Install",[350,351,356],"pre",{"className":352,"code":353,"language":354,"meta":355,"style":355},"language-xml shiki shiki-themes light-plus light-plus dark-plus","\u003CPackageReference Include=\"AutoFixture\" Version=\"5.0.0-rc.1\" \u002F>\n\u003CPackageReference Include=\"AutoFixture.Xunit3\" Version=\"5.0.0-rc.1\" \u002F>\n\u003CPackageReference Include=\"xunit.v3\" Version=\"2.0.0\" \u002F>\n","xml","",[304,357,358,394,416],{"__ignoreMap":355},[359,360,363,367,371,375,379,383,386,388,391],"span",{"class":361,"line":362},"line",1,[359,364,366],{"class":365},"s9Xrk","\u003C",[359,368,370],{"class":369},"swrg_","PackageReference",[359,372,374],{"class":373},"ssBXb"," Include",[359,376,378],{"class":377},"s_Yst","=",[359,380,382],{"class":381},"swG-L","\"AutoFixture\"",[359,384,385],{"class":373}," Version",[359,387,378],{"class":377},[359,389,390],{"class":381},"\"5.0.0-rc.1\"",[359,392,393],{"class":365}," \u002F>\n",[359,395,397,399,401,403,405,408,410,412,414],{"class":361,"line":396},2,[359,398,366],{"class":365},[359,400,370],{"class":369},[359,402,374],{"class":373},[359,404,378],{"class":377},[359,406,407],{"class":381},"\"AutoFixture.Xunit3\"",[359,409,385],{"class":373},[359,411,378],{"class":377},[359,413,390],{"class":381},[359,415,393],{"class":365},[359,417,419,421,423,425,427,430,432,434,437],{"class":361,"line":418},3,[359,420,366],{"class":365},[359,422,370],{"class":369},[359,424,374],{"class":373},[359,426,378],{"class":377},[359,428,429],{"class":381},"\"xunit.v3\"",[359,431,385],{"class":373},[359,433,378],{"class":377},[359,435,436],{"class":381},"\"2.0.0\"",[359,438,393],{"class":365},[293,440,441,442,321,444,446],{},"Pin matching versions of ",[315,443,193],{},[315,445,283],{}," in the same project.",[327,448,450],{"id":449},"example-scenario","Example scenario",[293,452,453,454,457,458,461],{},"You are testing ",[304,455,456],{},"MyClass.Echo",", which returns its input. The test needs an integer and a ",[304,459,460],{},"MyClass"," instance — but the exact values do not matter. Later tests freeze collaborators, pick constructors, or share fixture setup across theories.",[327,463,465],{"id":464},"autodata","AutoData",[350,467,471],{"className":468,"code":469,"language":470,"meta":355,"style":355},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","[Theory, AutoData]\npublic void AutoData_ProvidesTestParameters(int expectedNumber, MyClass sut)\n{\n    var result = sut.Echo(expectedNumber);\n\n    Assert.Equal(expectedNumber, result);\n}\n","csharp",[304,472,473,490,523,528,557,563,585],{"__ignoreMap":355},[359,474,475,478,482,485,487],{"class":361,"line":362},[359,476,477],{"class":377},"[",[359,479,481],{"class":480},"sopvc","Theory",[359,483,484],{"class":377},", ",[359,486,465],{"class":480},[359,488,489],{"class":377},"]\n",[359,491,492,496,499,503,506,509,513,515,517,520],{"class":361,"line":396},[359,493,495],{"class":494},"stxUP","public",[359,497,498],{"class":494}," void",[359,500,502],{"class":501},"swoLU"," AutoData_ProvidesTestParameters",[359,504,505],{"class":377},"(",[359,507,508],{"class":494},"int",[359,510,512],{"class":511},"sswaR"," expectedNumber",[359,514,484],{"class":377},[359,516,460],{"class":480},[359,518,519],{"class":511}," sut",[359,521,522],{"class":377},")\n",[359,524,525],{"class":361,"line":418},[359,526,527],{"class":377},"{\n",[359,529,531,534,537,540,543,546,549,551,554],{"class":361,"line":530},4,[359,532,533],{"class":494},"    var",[359,535,536],{"class":511}," result",[359,538,539],{"class":377}," = ",[359,541,542],{"class":511},"sut",[359,544,545],{"class":377},".",[359,547,548],{"class":501},"Echo",[359,550,505],{"class":377},[359,552,553],{"class":511},"expectedNumber",[359,555,556],{"class":377},");\n",[359,558,560],{"class":361,"line":559},5,[359,561,562],{"emptyLinePlaceholder":194},"\n",[359,564,566,569,571,574,576,578,580,583],{"class":361,"line":565},6,[359,567,568],{"class":511},"    Assert",[359,570,545],{"class":377},[359,572,573],{"class":501},"Equal",[359,575,505],{"class":377},[359,577,553],{"class":511},[359,579,484],{"class":377},[359,581,582],{"class":511},"result",[359,584,556],{"class":377},[359,586,588],{"class":361,"line":587},7,[359,589,590],{"class":377},"}\n",[327,592,594],{"id":593},"inlineautodata","InlineAutoData",[293,596,597],{},"Mix explicit values with generated ones. Explicit arguments fill parameters left-to-right; AutoFixture generates the rest:",[350,599,601],{"className":468,"code":600,"language":470,"meta":355,"style":355},"[Theory]\n[InlineAutoData(\"alpha\")]\n[InlineAutoData(\"alpha\", \"beta\")]\npublic void InlineAutoData_MixesExplicitAndGeneratedValues(string first, string second)\n{\n    Assert.Equal(\"alpha\", first);\n    Assert.False(string.IsNullOrEmpty(second));\n}\n",[304,602,603,611,626,643,669,673,692,718],{"__ignoreMap":355},[359,604,605,607,609],{"class":361,"line":362},[359,606,477],{"class":377},[359,608,481],{"class":480},[359,610,489],{"class":377},[359,612,613,615,617,619,623],{"class":361,"line":396},[359,614,477],{"class":377},[359,616,594],{"class":480},[359,618,505],{"class":377},[359,620,622],{"class":621},"sFD8J","\"alpha\"",[359,624,625],{"class":377},")]\n",[359,627,628,630,632,634,636,638,641],{"class":361,"line":418},[359,629,477],{"class":377},[359,631,594],{"class":480},[359,633,505],{"class":377},[359,635,622],{"class":621},[359,637,484],{"class":377},[359,639,640],{"class":621},"\"beta\"",[359,642,625],{"class":377},[359,644,645,647,649,652,654,657,660,662,664,667],{"class":361,"line":530},[359,646,495],{"class":494},[359,648,498],{"class":494},[359,650,651],{"class":501}," InlineAutoData_MixesExplicitAndGeneratedValues",[359,653,505],{"class":377},[359,655,656],{"class":494},"string",[359,658,659],{"class":511}," first",[359,661,484],{"class":377},[359,663,656],{"class":494},[359,665,666],{"class":511}," second",[359,668,522],{"class":377},[359,670,671],{"class":361,"line":559},[359,672,527],{"class":377},[359,674,675,677,679,681,683,685,687,690],{"class":361,"line":565},[359,676,568],{"class":511},[359,678,545],{"class":377},[359,680,573],{"class":501},[359,682,505],{"class":377},[359,684,622],{"class":621},[359,686,484],{"class":377},[359,688,689],{"class":511},"first",[359,691,556],{"class":377},[359,693,694,696,698,701,703,705,707,710,712,715],{"class":361,"line":587},[359,695,568],{"class":511},[359,697,545],{"class":377},[359,699,700],{"class":501},"False",[359,702,505],{"class":377},[359,704,656],{"class":494},[359,706,545],{"class":377},[359,708,709],{"class":501},"IsNullOrEmpty",[359,711,505],{"class":377},[359,713,714],{"class":511},"second",[359,716,717],{"class":377},"));\n",[359,719,721],{"class":361,"line":720},8,[359,722,590],{"class":377},[327,724,726],{"id":725},"parameter-attributes","Parameter attributes",[293,728,729],{},"Apply attributes on theory parameters to customize how that parameter (and later parameters) are created.",[731,732,734],"h3",{"id":733},"frozen","Frozen",[293,736,737,738,741,742,747],{},"Without ",[304,739,740],{},"[Frozen]",", each parameter of the same type gets its own anonymous instance. ",[296,743,745],{"href":744},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.frozenattribute",[304,746,740],{}," tells AutoFixture: create this parameter once, then reuse that same instance for later requests of a matching type.",[350,749,751],{"className":468,"code":750,"language":470,"meta":355,"style":355},"[Theory, AutoData]\npublic void Frozen_SharesSameInstance([Frozen] string first, string second)\n{\n    Assert.Equal(first, second);\n}\n",[304,752,753,765,794,798,816],{"__ignoreMap":355},[359,754,755,757,759,761,763],{"class":361,"line":362},[359,756,477],{"class":377},[359,758,481],{"class":480},[359,760,484],{"class":377},[359,762,465],{"class":480},[359,764,489],{"class":377},[359,766,767,769,771,774,777,779,782,784,786,788,790,792],{"class":361,"line":396},[359,768,495],{"class":494},[359,770,498],{"class":494},[359,772,773],{"class":501}," Frozen_SharesSameInstance",[359,775,776],{"class":377},"([",[359,778,734],{"class":480},[359,780,781],{"class":377},"] ",[359,783,656],{"class":494},[359,785,659],{"class":511},[359,787,484],{"class":377},[359,789,656],{"class":494},[359,791,666],{"class":511},[359,793,522],{"class":377},[359,795,796],{"class":361,"line":418},[359,797,527],{"class":377},[359,799,800,802,804,806,808,810,812,814],{"class":361,"line":530},[359,801,568],{"class":511},[359,803,545],{"class":377},[359,805,573],{"class":501},[359,807,505],{"class":377},[359,809,689],{"class":511},[359,811,484],{"class":377},[359,813,714],{"class":511},[359,815,556],{"class":377},[359,817,818],{"class":361,"line":559},[359,819,590],{"class":377},[293,821,822,823,826],{},"Only parameters that come ",[315,824,825],{},"after"," the frozen one reuse it. Earlier parameters of the same type stay independent.",[731,828,830],{"id":829},"frozen-with-matching","Frozen with Matching",[293,832,833,834,837,838,841,842,845,846,849],{},"By default, freeze matches the ",[315,835,836],{},"exact type"," only (",[304,839,840],{},"Matching.ExactType","). A frozen ",[304,843,844],{},"InMemoryOrderRepository"," would not satisfy an ",[304,847,848],{},"IOrderRepository"," constructor parameter.",[293,851,852,853,859],{},"Use ",[296,854,856],{"href":855},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.matching",[304,857,858],{},"Matching"," to widen what the frozen value can satisfy:",[350,861,863],{"className":468,"code":862,"language":470,"meta":355,"style":355},"[Theory, AutoData]\npublic void Frozen_ByImplementedInterfaces_InjectsConcreteIntoInterface(\n    [Frozen(Matching.ImplementedInterfaces)] InMemoryOrderRepository repository,\n    OrderService sut,\n    Order order)\n{\n    sut.PlaceOrder(order);\n\n    Assert.Contains(order, repository.Saved);\n}\n",[304,864,865,877,889,916,925,935,939,956,960,986],{"__ignoreMap":355},[359,866,867,869,871,873,875],{"class":361,"line":362},[359,868,477],{"class":377},[359,870,481],{"class":480},[359,872,484],{"class":377},[359,874,465],{"class":480},[359,876,489],{"class":377},[359,878,879,881,883,886],{"class":361,"line":396},[359,880,495],{"class":494},[359,882,498],{"class":494},[359,884,885],{"class":501}," Frozen_ByImplementedInterfaces_InjectsConcreteIntoInterface",[359,887,888],{"class":377},"(\n",[359,890,891,894,896,898,900,902,905,908,910,913],{"class":361,"line":418},[359,892,893],{"class":377},"    [",[359,895,734],{"class":480},[359,897,505],{"class":377},[359,899,858],{"class":511},[359,901,545],{"class":377},[359,903,904],{"class":511},"ImplementedInterfaces",[359,906,907],{"class":377},")] ",[359,909,844],{"class":480},[359,911,912],{"class":511}," repository",[359,914,915],{"class":377},",\n",[359,917,918,921,923],{"class":361,"line":530},[359,919,920],{"class":480},"    OrderService",[359,922,519],{"class":511},[359,924,915],{"class":377},[359,926,927,930,933],{"class":361,"line":559},[359,928,929],{"class":480},"    Order",[359,931,932],{"class":511}," order",[359,934,522],{"class":377},[359,936,937],{"class":361,"line":565},[359,938,527],{"class":377},[359,940,941,944,946,949,951,954],{"class":361,"line":587},[359,942,943],{"class":511},"    sut",[359,945,545],{"class":377},[359,947,948],{"class":501},"PlaceOrder",[359,950,505],{"class":377},[359,952,953],{"class":511},"order",[359,955,556],{"class":377},[359,957,958],{"class":361,"line":720},[359,959,562],{"emptyLinePlaceholder":194},[359,961,963,965,967,970,972,974,976,979,981,984],{"class":361,"line":962},9,[359,964,568],{"class":511},[359,966,545],{"class":377},[359,968,969],{"class":501},"Contains",[359,971,505],{"class":377},[359,973,953],{"class":511},[359,975,484],{"class":377},[359,977,978],{"class":511},"repository",[359,980,545],{"class":377},[359,982,983],{"class":511},"Saved",[359,985,556],{"class":377},[359,987,989],{"class":361,"line":988},10,[359,990,590],{"class":377},[293,992,993,996,997,999,1000,1003,1004,321,1006,1008,1009,545],{},[304,994,995],{},"OrderService"," needs ",[304,998,848],{},". With ",[304,1001,1002],{},"Matching.ImplementedInterfaces",", the frozen concrete repository is also used wherever that interface is requested — so ",[304,1005,542],{},[304,1007,978],{}," share one instance and you can assert on ",[304,1010,1011],{},"repository.Saved",[1013,1014,1015,1028],"table",{},[1016,1017,1018],"thead",{},[1019,1020,1021,1025],"tr",{},[1022,1023,1024],"th",{},"Flag",[1022,1026,1027],{},"Matches requests for…",[1029,1030,1031,1042,1052,1061,1071,1081,1091],"tbody",{},[1019,1032,1033,1039],{},[1034,1035,1036],"td",{},[304,1037,1038],{},"ExactType",[1034,1040,1041],{},"The same type as the parameter (default)",[1019,1043,1044,1049],{},[1034,1045,1046],{},[304,1047,1048],{},"DirectBaseType",[1034,1050,1051],{},"The parameter's immediate base type",[1019,1053,1054,1058],{},[1034,1055,1056],{},[304,1057,904],{},[1034,1059,1060],{},"Interfaces the parameter type implements",[1019,1062,1063,1068],{},[1034,1064,1065],{},[304,1066,1067],{},"ParameterName",[1034,1069,1070],{},"A constructor\u002Fmethod parameter with the same name",[1019,1072,1073,1078],{},[1034,1074,1075],{},[304,1076,1077],{},"PropertyName",[1034,1079,1080],{},"A property with the same name",[1019,1082,1083,1088],{},[1034,1084,1085],{},[304,1086,1087],{},"FieldName",[1034,1089,1090],{},"A field with the same name",[1019,1092,1093,1098],{},[1034,1094,1095],{},[304,1096,1097],{},"MemberName",[1034,1099,1100],{},"Parameter, property, or field with the same name",[293,1102,1103,1104,1107,1108,545],{},"Combine flags with ",[304,1105,1106],{},"|",", for example ",[304,1109,1110],{},"Matching.ExactType | Matching.ImplementedInterfaces",[731,1112,1114],{"id":1113},"modest-and-greedy","Modest and Greedy",[293,1116,1117,1118,1121],{},"When a type has several constructors, AutoFixture must pick one. For ",[304,1119,1120],{},"MultiCtorProduct"," that means: parameterless, name-only, or name + price.",[332,1123,1124,1142],{},[335,1125,1126,1131,1132,1135,1136,307,1139,545],{},[315,1127,1128],{},[304,1129,1130],{},"[Modest]"," — prefer the constructor with the ",[315,1133,1134],{},"fewest"," parameters (most modest). Here that is the parameterless constructor, so you get the hard-coded defaults ",[304,1137,1138],{},"\"default\"",[304,1140,1141],{},"0m",[335,1143,1144,1131,1149,1152,1153,1156],{},[315,1145,1146],{},[304,1147,1148],{},"[Greedy]",[315,1150,1151],{},"most"," parameters (greediest). Here that is ",[304,1154,1155],{},"(string name, decimal price)",", so AutoFixture generates anonymous values for both.",[350,1158,1160],{"className":468,"code":1159,"language":470,"meta":355,"style":355},"[Theory, AutoData]\npublic void ModestAttribute_UsesParameterlessConstructor([Modest] MultiCtorProduct product)\n{\n    Assert.Equal(\"default\", product.Name);\n    Assert.Equal(0m, product.Price);\n}\n\n[Theory, AutoData]\npublic void GreedyAttribute_UsesFullestConstructor([Greedy] MultiCtorProduct product)\n{\n    Assert.False(string.IsNullOrEmpty(product.Name));\n    Assert.NotEqual(0m, product.Price);\n}\n",[304,1161,1162,1174,1197,1201,1225,1249,1253,1257,1269,1291,1295,1322,1346],{"__ignoreMap":355},[359,1163,1164,1166,1168,1170,1172],{"class":361,"line":362},[359,1165,477],{"class":377},[359,1167,481],{"class":480},[359,1169,484],{"class":377},[359,1171,465],{"class":480},[359,1173,489],{"class":377},[359,1175,1176,1178,1180,1183,1185,1188,1190,1192,1195],{"class":361,"line":396},[359,1177,495],{"class":494},[359,1179,498],{"class":494},[359,1181,1182],{"class":501}," ModestAttribute_UsesParameterlessConstructor",[359,1184,776],{"class":377},[359,1186,1187],{"class":480},"Modest",[359,1189,781],{"class":377},[359,1191,1120],{"class":480},[359,1193,1194],{"class":511}," product",[359,1196,522],{"class":377},[359,1198,1199],{"class":361,"line":418},[359,1200,527],{"class":377},[359,1202,1203,1205,1207,1209,1211,1213,1215,1218,1220,1223],{"class":361,"line":530},[359,1204,568],{"class":511},[359,1206,545],{"class":377},[359,1208,573],{"class":501},[359,1210,505],{"class":377},[359,1212,1138],{"class":621},[359,1214,484],{"class":377},[359,1216,1217],{"class":511},"product",[359,1219,545],{"class":377},[359,1221,1222],{"class":511},"Name",[359,1224,556],{"class":377},[359,1226,1227,1229,1231,1233,1235,1238,1240,1242,1244,1247],{"class":361,"line":559},[359,1228,568],{"class":511},[359,1230,545],{"class":377},[359,1232,573],{"class":501},[359,1234,505],{"class":377},[359,1236,1141],{"class":1237},"s-S-M",[359,1239,484],{"class":377},[359,1241,1217],{"class":511},[359,1243,545],{"class":377},[359,1245,1246],{"class":511},"Price",[359,1248,556],{"class":377},[359,1250,1251],{"class":361,"line":565},[359,1252,590],{"class":377},[359,1254,1255],{"class":361,"line":587},[359,1256,562],{"emptyLinePlaceholder":194},[359,1258,1259,1261,1263,1265,1267],{"class":361,"line":720},[359,1260,477],{"class":377},[359,1262,481],{"class":480},[359,1264,484],{"class":377},[359,1266,465],{"class":480},[359,1268,489],{"class":377},[359,1270,1271,1273,1275,1278,1280,1283,1285,1287,1289],{"class":361,"line":962},[359,1272,495],{"class":494},[359,1274,498],{"class":494},[359,1276,1277],{"class":501}," GreedyAttribute_UsesFullestConstructor",[359,1279,776],{"class":377},[359,1281,1282],{"class":480},"Greedy",[359,1284,781],{"class":377},[359,1286,1120],{"class":480},[359,1288,1194],{"class":511},[359,1290,522],{"class":377},[359,1292,1293],{"class":361,"line":988},[359,1294,527],{"class":377},[359,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320],{"class":361,"line":1297},11,[359,1299,568],{"class":511},[359,1301,545],{"class":377},[359,1303,700],{"class":501},[359,1305,505],{"class":377},[359,1307,656],{"class":494},[359,1309,545],{"class":377},[359,1311,709],{"class":501},[359,1313,505],{"class":377},[359,1315,1217],{"class":511},[359,1317,545],{"class":377},[359,1319,1222],{"class":511},[359,1321,717],{"class":377},[359,1323,1325,1327,1329,1332,1334,1336,1338,1340,1342,1344],{"class":361,"line":1324},12,[359,1326,568],{"class":511},[359,1328,545],{"class":377},[359,1330,1331],{"class":501},"NotEqual",[359,1333,505],{"class":377},[359,1335,1141],{"class":1237},[359,1337,484],{"class":377},[359,1339,1217],{"class":511},[359,1341,545],{"class":377},[359,1343,1246],{"class":511},[359,1345,556],{"class":377},[359,1347,1349],{"class":361,"line":1348},13,[359,1350,590],{"class":377},[293,1352,1353,1354,1357,1358,545],{},"You can combine attributes on one parameter, for example ",[304,1355,1356],{},"[Frozen][Greedy]",". See also ",[296,1359,56],{"href":57},[731,1361,1363],{"id":1362},"noautoproperties","NoAutoProperties",[293,1365,1366,1367,1373,1374,1377,1378,311],{},"By default, after construction AutoFixture assigns anonymous values to writable public properties. ",[296,1368,1370],{"href":1369},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.noautopropertiesattribute",[304,1371,1372],{},"[NoAutoProperties]"," turns that off for the parameter's type — the instance is created, but properties keep their type defaults (here ",[304,1375,1376],{},"string.Empty"," for ",[304,1379,1222],{},[350,1381,1383],{"className":468,"code":1382,"language":470,"meta":355,"style":355},"[Theory, AutoData]\npublic void NoAutoProperties_LeavesWritablePropertiesUnset([NoAutoProperties] Person person)\n{\n    Assert.Equal(string.Empty, person.Name);\n}\n",[304,1384,1385,1397,1420,1424,1452],{"__ignoreMap":355},[359,1386,1387,1389,1391,1393,1395],{"class":361,"line":362},[359,1388,477],{"class":377},[359,1390,481],{"class":480},[359,1392,484],{"class":377},[359,1394,465],{"class":480},[359,1396,489],{"class":377},[359,1398,1399,1401,1403,1406,1408,1410,1412,1415,1418],{"class":361,"line":396},[359,1400,495],{"class":494},[359,1402,498],{"class":494},[359,1404,1405],{"class":501}," NoAutoProperties_LeavesWritablePropertiesUnset",[359,1407,776],{"class":377},[359,1409,1363],{"class":480},[359,1411,781],{"class":377},[359,1413,1414],{"class":480},"Person",[359,1416,1417],{"class":511}," person",[359,1419,522],{"class":377},[359,1421,1422],{"class":361,"line":418},[359,1423,527],{"class":377},[359,1425,1426,1428,1430,1432,1434,1436,1438,1441,1443,1446,1448,1450],{"class":361,"line":530},[359,1427,568],{"class":511},[359,1429,545],{"class":377},[359,1431,573],{"class":501},[359,1433,505],{"class":377},[359,1435,656],{"class":494},[359,1437,545],{"class":377},[359,1439,1440],{"class":511},"Empty",[359,1442,484],{"class":377},[359,1444,1445],{"class":511},"person",[359,1447,545],{"class":377},[359,1449,1222],{"class":511},[359,1451,556],{"class":377},[359,1453,1454],{"class":361,"line":559},[359,1455,590],{"class":377},[731,1457,1459],{"id":1458},"favorarrays-favorlists-and-favorenumerables","FavorArrays, FavorLists, and FavorEnumerables",[293,1461,1462,1463,1466],{},"Like Modest\u002FGreedy, these change ",[315,1464,1465],{},"which constructor"," is chosen when a type overloads constructors that take different collection shapes:",[332,1468,1469,1481,1492],{},[335,1470,1471,1476,1477,1480],{},[315,1472,1473],{},[304,1474,1475],{},"[FavorArrays]"," — prefer a constructor that takes an array (",[304,1478,1479],{},"T[]",")",[335,1482,1483,1488,1489],{},[315,1484,1485],{},[304,1486,1487],{},"[FavorLists]"," — prefer a constructor that takes ",[304,1490,1491],{},"IList\u003CT>",[335,1493,1494,1488,1499],{},[315,1495,1496],{},[304,1497,1498],{},"[FavorEnumerables]",[304,1500,1501],{},"IEnumerable\u003CT>",[293,1503,1504],{},"Use them when the type exposes several collection constructors and the default choice is not the one your test needs.",[731,1506,1508],{"id":1507},"custom-parameter-attribute","Custom parameter attribute",[293,1510,1511,1512,1518,1519,1522,1523,1526],{},"Subclass ",[296,1513,1515],{"href":1514},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.customizeattribute",[304,1516,1517],{},"CustomizeAttribute"," and return an ",[304,1520,1521],{},"ICustomization"," from ",[304,1524,1525],{},"GetCustomization",". AutoFixture applies it when resolving that parameter:",[350,1528,1530],{"className":468,"code":1529,"language":470,"meta":355,"style":355},"using System.Reflection;\nusing AutoFixture;\nusing AutoFixture.Xunit3;\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[Theory, AutoData]\npublic void CustomParameterAttribute_InjectsConfiguredValue([Named(\"widget\")] string name)\n{\n    Assert.Equal(\"widget\", name);\n}\n",[304,1531,1532,1549,1558,1571,1575,1601,1605,1629,1634,1651,1655,1673,1678,1682,1706,1711,1748,1753,1758,1763,1776,1804,1809,1828],{"__ignoreMap":355},[359,1533,1534,1538,1541,1543,1546],{"class":361,"line":362},[359,1535,1537],{"class":1536},"smUd-","using",[359,1539,1540],{"class":480}," System",[359,1542,545],{"class":377},[359,1544,1545],{"class":480},"Reflection",[359,1547,1548],{"class":377},";\n",[359,1550,1551,1553,1556],{"class":361,"line":396},[359,1552,1537],{"class":1536},[359,1554,1555],{"class":480}," AutoFixture",[359,1557,1548],{"class":377},[359,1559,1560,1562,1564,1566,1569],{"class":361,"line":418},[359,1561,1537],{"class":1536},[359,1563,1555],{"class":480},[359,1565,545],{"class":377},[359,1567,1568],{"class":480},"Xunit3",[359,1570,1548],{"class":377},[359,1572,1573],{"class":361,"line":530},[359,1574,562],{"emptyLinePlaceholder":194},[359,1576,1577,1579,1582,1585,1588,1590,1592,1595,1598],{"class":361,"line":559},[359,1578,495],{"class":494},[359,1580,1581],{"class":494}," sealed",[359,1583,1584],{"class":494}," class",[359,1586,1587],{"class":480}," NamedAttribute",[359,1589,505],{"class":377},[359,1591,656],{"class":494},[359,1593,1594],{"class":511}," name",[359,1596,1597],{"class":377},") : ",[359,1599,1600],{"class":480},"CustomizeAttribute\n",[359,1602,1603],{"class":361,"line":565},[359,1604,527],{"class":377},[359,1606,1607,1610,1613,1616,1619,1621,1624,1627],{"class":361,"line":587},[359,1608,1609],{"class":494},"    public",[359,1611,1612],{"class":494}," override",[359,1614,1615],{"class":480}," ICustomization",[359,1617,1618],{"class":501}," GetCustomization",[359,1620,505],{"class":377},[359,1622,1623],{"class":480},"ParameterInfo",[359,1625,1626],{"class":511}," parameter",[359,1628,522],{"class":377},[359,1630,1631],{"class":361,"line":720},[359,1632,1633],{"class":377},"    {\n",[359,1635,1636,1639,1641,1644,1646,1649],{"class":361,"line":962},[359,1637,1638],{"class":511},"        ArgumentNullException",[359,1640,545],{"class":377},[359,1642,1643],{"class":501},"ThrowIfNull",[359,1645,505],{"class":377},[359,1647,1648],{"class":511},"parameter",[359,1650,556],{"class":377},[359,1652,1653],{"class":361,"line":988},[359,1654,562],{"emptyLinePlaceholder":194},[359,1656,1657,1660,1663,1666,1668,1671],{"class":361,"line":1297},[359,1658,1659],{"class":1536},"        return",[359,1661,1662],{"class":494}," new",[359,1664,1665],{"class":480}," NamedCustomization",[359,1667,505],{"class":377},[359,1669,1670],{"class":511},"name",[359,1672,556],{"class":377},[359,1674,1675],{"class":361,"line":1324},[359,1676,1677],{"class":377},"    }\n",[359,1679,1680],{"class":361,"line":1348},[359,1681,562],{"emptyLinePlaceholder":194},[359,1683,1685,1688,1690,1692,1694,1696,1698,1701,1703],{"class":361,"line":1684},14,[359,1686,1687],{"class":494},"    private",[359,1689,1581],{"class":494},[359,1691,1584],{"class":494},[359,1693,1665],{"class":480},[359,1695,505],{"class":377},[359,1697,656],{"class":494},[359,1699,1700],{"class":511}," value",[359,1702,1597],{"class":377},[359,1704,1705],{"class":480},"ICustomization\n",[359,1707,1709],{"class":361,"line":1708},15,[359,1710,1633],{"class":377},[359,1712,1714,1717,1719,1722,1724,1727,1730,1733,1736,1738,1741,1743,1746],{"class":361,"line":1713},16,[359,1715,1716],{"class":494},"        public",[359,1718,498],{"class":494},[359,1720,1721],{"class":501}," Customize",[359,1723,505],{"class":377},[359,1725,1726],{"class":480},"IFixture",[359,1728,1729],{"class":511}," fixture",[359,1731,1732],{"class":377},") => ",[359,1734,1735],{"class":511},"fixture",[359,1737,545],{"class":377},[359,1739,1740],{"class":501},"Inject",[359,1742,505],{"class":377},[359,1744,1745],{"class":511},"value",[359,1747,556],{"class":377},[359,1749,1751],{"class":361,"line":1750},17,[359,1752,1677],{"class":377},[359,1754,1756],{"class":361,"line":1755},18,[359,1757,590],{"class":377},[359,1759,1761],{"class":361,"line":1760},19,[359,1762,562],{"emptyLinePlaceholder":194},[359,1764,1766,1768,1770,1772,1774],{"class":361,"line":1765},20,[359,1767,477],{"class":377},[359,1769,481],{"class":480},[359,1771,484],{"class":377},[359,1773,465],{"class":480},[359,1775,489],{"class":377},[359,1777,1779,1781,1783,1786,1788,1791,1793,1796,1798,1800,1802],{"class":361,"line":1778},21,[359,1780,495],{"class":494},[359,1782,498],{"class":494},[359,1784,1785],{"class":501}," CustomParameterAttribute_InjectsConfiguredValue",[359,1787,776],{"class":377},[359,1789,1790],{"class":480},"Named",[359,1792,505],{"class":377},[359,1794,1795],{"class":621},"\"widget\"",[359,1797,907],{"class":377},[359,1799,656],{"class":494},[359,1801,1594],{"class":511},[359,1803,522],{"class":377},[359,1805,1807],{"class":361,"line":1806},22,[359,1808,527],{"class":377},[359,1810,1812,1814,1816,1818,1820,1822,1824,1826],{"class":361,"line":1811},23,[359,1813,568],{"class":511},[359,1815,545],{"class":377},[359,1817,573],{"class":501},[359,1819,505],{"class":377},[359,1821,1795],{"class":621},[359,1823,484],{"class":377},[359,1825,1670],{"class":511},[359,1827,556],{"class":377},[359,1829,1831],{"class":361,"line":1830},24,[359,1832,590],{"class":377},[293,1834,1835,1838,1839,1841,1842,1844],{},[304,1836,1837],{},"[Named(\"widget\")]"," injects the fixed string ",[304,1840,1795],{}," 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,1843,740],{}," when later parameters should reuse the same value.",[327,1846,1848],{"id":1847},"custom-autodata-attribute","Custom AutoData attribute",[293,1850,1851,1852,1855],{},"When tests need the same fixture setup (for example AutoMoq), define a custom attribute instead of repeating ",[304,1853,1854],{},"Customize"," in every test.",[293,1857,1858,1859,1861,1862,545],{},"Add ",[296,1860,114],{"href":115}," when the factory uses ",[304,1863,1864],{},"AutoMoqCustomization",[350,1866,1868],{"className":468,"code":1867,"language":470,"meta":355,"style":355},"public class AutoMoqDataAttribute : AutoDataAttribute\n{\n    public AutoMoqDataAttribute()\n        : base(() => new Fixture().Customize(new AutoMoqCustomization()))\n    {\n    }\n}\n\n[Theory, AutoMoqData]\npublic void CustomAutoData_UsesFixtureFactory(OrderService service, Order order)\n{\n    Assert.NotNull(service);\n\n    var exception = Record.Exception(() => service.PlaceOrder(order));\n\n    Assert.Null(exception);\n}\n",[304,1869,1870,1885,1889,1898,1930,1934,1938,1942,1946,1959,1984,1988,2004,2008,2039,2043,2059],{"__ignoreMap":355},[359,1871,1872,1874,1876,1879,1882],{"class":361,"line":362},[359,1873,495],{"class":494},[359,1875,1584],{"class":494},[359,1877,1878],{"class":480}," AutoMoqDataAttribute",[359,1880,1881],{"class":377}," : ",[359,1883,1884],{"class":480},"AutoDataAttribute\n",[359,1886,1887],{"class":361,"line":396},[359,1888,527],{"class":377},[359,1890,1891,1893,1895],{"class":361,"line":418},[359,1892,1609],{"class":494},[359,1894,1878],{"class":501},[359,1896,1897],{"class":377},"()\n",[359,1899,1900,1903,1906,1909,1912,1915,1918,1920,1922,1924,1927],{"class":361,"line":530},[359,1901,1902],{"class":377},"        : ",[359,1904,1905],{"class":494},"base",[359,1907,1908],{"class":377},"(() => ",[359,1910,1911],{"class":494},"new",[359,1913,1914],{"class":480}," Fixture",[359,1916,1917],{"class":377},"().",[359,1919,1854],{"class":501},[359,1921,505],{"class":377},[359,1923,1911],{"class":494},[359,1925,1926],{"class":480}," AutoMoqCustomization",[359,1928,1929],{"class":377},"()))\n",[359,1931,1932],{"class":361,"line":559},[359,1933,1633],{"class":377},[359,1935,1936],{"class":361,"line":565},[359,1937,1677],{"class":377},[359,1939,1940],{"class":361,"line":587},[359,1941,590],{"class":377},[359,1943,1944],{"class":361,"line":720},[359,1945,562],{"emptyLinePlaceholder":194},[359,1947,1948,1950,1952,1954,1957],{"class":361,"line":962},[359,1949,477],{"class":377},[359,1951,481],{"class":480},[359,1953,484],{"class":377},[359,1955,1956],{"class":480},"AutoMoqData",[359,1958,489],{"class":377},[359,1960,1961,1963,1965,1968,1970,1972,1975,1977,1980,1982],{"class":361,"line":988},[359,1962,495],{"class":494},[359,1964,498],{"class":494},[359,1966,1967],{"class":501}," CustomAutoData_UsesFixtureFactory",[359,1969,505],{"class":377},[359,1971,995],{"class":480},[359,1973,1974],{"class":511}," service",[359,1976,484],{"class":377},[359,1978,1979],{"class":480},"Order",[359,1981,932],{"class":511},[359,1983,522],{"class":377},[359,1985,1986],{"class":361,"line":1297},[359,1987,527],{"class":377},[359,1989,1990,1992,1994,1997,1999,2002],{"class":361,"line":1324},[359,1991,568],{"class":511},[359,1993,545],{"class":377},[359,1995,1996],{"class":501},"NotNull",[359,1998,505],{"class":377},[359,2000,2001],{"class":511},"service",[359,2003,556],{"class":377},[359,2005,2006],{"class":361,"line":1348},[359,2007,562],{"emptyLinePlaceholder":194},[359,2009,2010,2012,2015,2017,2020,2022,2025,2027,2029,2031,2033,2035,2037],{"class":361,"line":1684},[359,2011,533],{"class":494},[359,2013,2014],{"class":511}," exception",[359,2016,539],{"class":377},[359,2018,2019],{"class":511},"Record",[359,2021,545],{"class":377},[359,2023,2024],{"class":501},"Exception",[359,2026,1908],{"class":377},[359,2028,2001],{"class":511},[359,2030,545],{"class":377},[359,2032,948],{"class":501},[359,2034,505],{"class":377},[359,2036,953],{"class":511},[359,2038,717],{"class":377},[359,2040,2041],{"class":361,"line":1708},[359,2042,562],{"emptyLinePlaceholder":194},[359,2044,2045,2047,2049,2052,2054,2057],{"class":361,"line":1713},[359,2046,568],{"class":511},[359,2048,545],{"class":377},[359,2050,2051],{"class":501},"Null",[359,2053,505],{"class":377},[359,2055,2056],{"class":511},"exception",[359,2058,556],{"class":377},[359,2060,2061],{"class":361,"line":1750},[359,2062,590],{"class":377},[293,2064,1511,2065,2068,2069,2072],{},[304,2066,2067],{},"AutoDataAttribute"," and pass a factory ",[304,2070,2071],{},"Func\u003CIFixture>"," to the base constructor. The factory runs once per test case and supplies the configured fixture; parameters are resolved from that fixture.",[327,2074,2076],{"id":2075},"custom-inlineautodata-attribute","Custom InlineAutoData attribute",[293,2078,1511,2079,2085],{},[296,2080,2082],{"href":2081},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.inlineautodataattribute",[304,2083,2084],{},"InlineAutoDataAttribute"," the same way — pass a fixture factory plus the inline values:",[350,2087,2089],{"className":468,"code":2088,"language":470,"meta":355,"style":355},"public class InlineAutoMoqDataAttribute : InlineAutoDataAttribute\n{\n    public InlineAutoMoqDataAttribute(params object[] values)\n        : base(() => new Fixture().Customize(new AutoMoqCustomization()), values)\n    {\n    }\n}\n\n[Theory]\n[InlineAutoMoqData(42)]\npublic void CustomInlineAutoData_MixesExplicitValuesWithCustomFixture(\n    int orderId,\n    OrderService service,\n    string productName)\n{\n    Assert.Equal(42, orderId);\n    Assert.NotNull(service);\n    Assert.False(string.IsNullOrEmpty(productName));\n\n    var exception = Record.Exception(() =>\n        service.PlaceOrder(new Order(orderId, productName)));\n\n    Assert.Null(exception);\n}\n",[304,2090,2091,2105,2109,2131,2160,2164,2168,2172,2176,2184,2198,2209,2219,2227,2237,2241,2260,2274,2297,2301,2318,2345,2349,2363],{"__ignoreMap":355},[359,2092,2093,2095,2097,2100,2102],{"class":361,"line":362},[359,2094,495],{"class":494},[359,2096,1584],{"class":494},[359,2098,2099],{"class":480}," InlineAutoMoqDataAttribute",[359,2101,1881],{"class":377},[359,2103,2104],{"class":480},"InlineAutoDataAttribute\n",[359,2106,2107],{"class":361,"line":396},[359,2108,527],{"class":377},[359,2110,2111,2113,2115,2117,2120,2123,2126,2129],{"class":361,"line":418},[359,2112,1609],{"class":494},[359,2114,2099],{"class":501},[359,2116,505],{"class":377},[359,2118,2119],{"class":494},"params",[359,2121,2122],{"class":494}," object",[359,2124,2125],{"class":377},"[] ",[359,2127,2128],{"class":511},"values",[359,2130,522],{"class":377},[359,2132,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2156,2158],{"class":361,"line":530},[359,2134,1902],{"class":377},[359,2136,1905],{"class":494},[359,2138,1908],{"class":377},[359,2140,1911],{"class":494},[359,2142,1914],{"class":480},[359,2144,1917],{"class":377},[359,2146,1854],{"class":501},[359,2148,505],{"class":377},[359,2150,1911],{"class":494},[359,2152,1926],{"class":480},[359,2154,2155],{"class":377},"()), ",[359,2157,2128],{"class":511},[359,2159,522],{"class":377},[359,2161,2162],{"class":361,"line":559},[359,2163,1633],{"class":377},[359,2165,2166],{"class":361,"line":565},[359,2167,1677],{"class":377},[359,2169,2170],{"class":361,"line":587},[359,2171,590],{"class":377},[359,2173,2174],{"class":361,"line":720},[359,2175,562],{"emptyLinePlaceholder":194},[359,2177,2178,2180,2182],{"class":361,"line":962},[359,2179,477],{"class":377},[359,2181,481],{"class":480},[359,2183,489],{"class":377},[359,2185,2186,2188,2191,2193,2196],{"class":361,"line":988},[359,2187,477],{"class":377},[359,2189,2190],{"class":480},"InlineAutoMoqData",[359,2192,505],{"class":377},[359,2194,2195],{"class":1237},"42",[359,2197,625],{"class":377},[359,2199,2200,2202,2204,2207],{"class":361,"line":1297},[359,2201,495],{"class":494},[359,2203,498],{"class":494},[359,2205,2206],{"class":501}," CustomInlineAutoData_MixesExplicitValuesWithCustomFixture",[359,2208,888],{"class":377},[359,2210,2211,2214,2217],{"class":361,"line":1324},[359,2212,2213],{"class":494},"    int",[359,2215,2216],{"class":511}," orderId",[359,2218,915],{"class":377},[359,2220,2221,2223,2225],{"class":361,"line":1348},[359,2222,920],{"class":480},[359,2224,1974],{"class":511},[359,2226,915],{"class":377},[359,2228,2229,2232,2235],{"class":361,"line":1684},[359,2230,2231],{"class":494},"    string",[359,2233,2234],{"class":511}," productName",[359,2236,522],{"class":377},[359,2238,2239],{"class":361,"line":1708},[359,2240,527],{"class":377},[359,2242,2243,2245,2247,2249,2251,2253,2255,2258],{"class":361,"line":1713},[359,2244,568],{"class":511},[359,2246,545],{"class":377},[359,2248,573],{"class":501},[359,2250,505],{"class":377},[359,2252,2195],{"class":1237},[359,2254,484],{"class":377},[359,2256,2257],{"class":511},"orderId",[359,2259,556],{"class":377},[359,2261,2262,2264,2266,2268,2270,2272],{"class":361,"line":1750},[359,2263,568],{"class":511},[359,2265,545],{"class":377},[359,2267,1996],{"class":501},[359,2269,505],{"class":377},[359,2271,2001],{"class":511},[359,2273,556],{"class":377},[359,2275,2276,2278,2280,2282,2284,2286,2288,2290,2292,2295],{"class":361,"line":1755},[359,2277,568],{"class":511},[359,2279,545],{"class":377},[359,2281,700],{"class":501},[359,2283,505],{"class":377},[359,2285,656],{"class":494},[359,2287,545],{"class":377},[359,2289,709],{"class":501},[359,2291,505],{"class":377},[359,2293,2294],{"class":511},"productName",[359,2296,717],{"class":377},[359,2298,2299],{"class":361,"line":1760},[359,2300,562],{"emptyLinePlaceholder":194},[359,2302,2303,2305,2307,2309,2311,2313,2315],{"class":361,"line":1765},[359,2304,533],{"class":494},[359,2306,2014],{"class":511},[359,2308,539],{"class":377},[359,2310,2019],{"class":511},[359,2312,545],{"class":377},[359,2314,2024],{"class":501},[359,2316,2317],{"class":377},"(() =>\n",[359,2319,2320,2323,2325,2327,2329,2331,2334,2336,2338,2340,2342],{"class":361,"line":1778},[359,2321,2322],{"class":511},"        service",[359,2324,545],{"class":377},[359,2326,948],{"class":501},[359,2328,505],{"class":377},[359,2330,1911],{"class":494},[359,2332,2333],{"class":480}," Order",[359,2335,505],{"class":377},[359,2337,2257],{"class":511},[359,2339,484],{"class":377},[359,2341,2294],{"class":511},[359,2343,2344],{"class":377},")));\n",[359,2346,2347],{"class":361,"line":1806},[359,2348,562],{"emptyLinePlaceholder":194},[359,2350,2351,2353,2355,2357,2359,2361],{"class":361,"line":1811},[359,2352,568],{"class":511},[359,2354,545],{"class":377},[359,2356,2051],{"class":501},[359,2358,505],{"class":377},[359,2360,2056],{"class":511},[359,2362,556],{"class":377},[359,2364,2365],{"class":361,"line":1830},[359,2366,590],{"class":377},[293,2368,2369],{},"Explicit values still fill parameters left-to-right; AutoFixture fills the rest from the customized fixture.",[327,2371,2373],{"id":2372},"how-it-works","How it works",[332,2375,2376,2383,2391,2401,2410,2417,2428,2439],{},[335,2377,2378,2382],{},[315,2379,2380],{},[304,2381,320],{}," — xUnit creates test cases with anonymous parameters",[335,2384,2385,2390],{},[315,2386,2387],{},[304,2388,2389],{},"[InlineAutoData(...)]"," — explicit inline values fill parameters left-to-right; AutoFixture generates the rest",[335,2392,2393,2400],{},[315,2394,2395,307,2397],{},[304,2396,740],{},[304,2398,2399],{},"[Frozen(Matching...)]"," — create once; reuse for later matching requests (exact type, interfaces, names, …)",[335,2402,2403,2409],{},[315,2404,2405,307,2407],{},[304,2406,1130],{},[304,2408,1148],{}," — fewest vs most constructor parameters",[335,2411,2412,2416],{},[315,2413,2414],{},[304,2415,1372],{}," — construct without filling writable properties",[335,2418,2419,2427],{},[315,2420,2421,307,2423,307,2425],{},[304,2422,1475],{},[304,2424,1487],{},[304,2426,1498],{}," — prefer constructors that take that collection shape",[335,2429,2430,2435,2436,2438],{},[315,2431,2432,2433],{},"Custom ",[304,2434,1517],{}," — return an ",[304,2437,1521],{}," for that parameter",[335,2440,1511,2441,2443,2444,2446],{},[304,2442,2067],{}," or ",[304,2445,2084],{}," to share fixture setup across theories",[327,2448,2450],{"id":2449},"next-steps","Next steps",[332,2452,2453,2458,2462,2466,2470,2474,2478],{},[335,2454,2455],{},[296,2456,2457],{"href":102},"Integrations overview",[335,2459,2460],{},[296,2461,118],{"href":119},[335,2463,2464],{},[296,2465,114],{"href":115},[335,2467,2468],{},[296,2469,56],{"href":57},[335,2471,2472],{},[296,2473,78],{"href":79},[335,2475,2476],{},[296,2477,185],{"href":186},[335,2479,2480],{},[296,2481,173],{"href":174},[327,2483,2485],{"id":2484},"api","API",[332,2487,2488,2494,2501,2507,2514,2520,2528,2536,2543,2551,2559,2567],{},[335,2489,2490],{},[296,2491,2493],{"href":2492},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1","AutoFixture.Xunit3 package",[335,2495,2496],{},[296,2497,2499],{"href":2498},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.autodataattribute",[304,2500,2067],{},[335,2502,2503],{},[296,2504,2505],{"href":2081},[304,2506,2084],{},[335,2508,2509],{},[296,2510,2511],{"href":744},[304,2512,2513],{},"FrozenAttribute",[335,2515,2516],{},[296,2517,2518],{"href":855},[304,2519,858],{},[335,2521,2522],{},[296,2523,2525],{"href":2524},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.modestattribute",[304,2526,2527],{},"ModestAttribute",[335,2529,2530],{},[296,2531,2533],{"href":2532},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.greedyattribute",[304,2534,2535],{},"GreedyAttribute",[335,2537,2538],{},[296,2539,2540],{"href":1369},[304,2541,2542],{},"NoAutoPropertiesAttribute",[335,2544,2545],{},[296,2546,2548],{"href":2547},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.favorarraysattribute",[304,2549,2550],{},"FavorArraysAttribute",[335,2552,2553],{},[296,2554,2556],{"href":2555},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.favorlistsattribute",[304,2557,2558],{},"FavorListsAttribute",[335,2560,2561],{},[296,2562,2564],{"href":2563},"\u002Fapi\u002Fxunit3\u002F5-0-0-rc-1\u002Fautofixture.xunit3.favorenumerablesattribute",[304,2565,2566],{},"FavorEnumerablesAttribute",[335,2568,2569],{},[296,2570,2571],{"href":1514},[304,2572,1517],{},[2574,2575,2576],"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":355,"searchDepth":396,"depth":396,"links":2578},[2579,2580,2581,2582,2583,2584,2592,2593,2594,2595,2596],{"id":329,"depth":396,"text":330},{"id":347,"depth":396,"text":348},{"id":449,"depth":396,"text":450},{"id":464,"depth":396,"text":465},{"id":593,"depth":396,"text":594},{"id":725,"depth":396,"text":726,"children":2585},[2586,2587,2588,2589,2590,2591],{"id":733,"depth":418,"text":734},{"id":829,"depth":418,"text":830},{"id":1113,"depth":418,"text":1114},{"id":1362,"depth":418,"text":1363},{"id":1458,"depth":418,"text":1459},{"id":1507,"depth":418,"text":1508},{"id":1847,"depth":396,"text":1848},{"id":2075,"depth":396,"text":2076},{"id":2372,"depth":396,"text":2373},{"id":2449,"depth":396,"text":2450},{"id":2484,"depth":396,"text":2485},"Use AutoData, InlineAutoData, and parameter attributes with xUnit.net 3 test projects.","md",{},{"title":110,"description":2597},"32vaLkxTgHefBrq6-fHRujq-67-l-cyr1EQXxhRynCg",[2603,2604],{"title":106,"path":107,"stem":108,"children":-1},{"title":114,"path":115,"stem":116,"children":-1},1788856648906]