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