[{"data":1,"prerenderedAt":1506},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Freference\u002Ffaq":287,"docs:\u002Fdocs\u002Freference\u002Ffaq-surround":1503},[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":173,"badge":11,"body":289,"description":1498,"extension":1499,"meta":1500,"navigation":194,"path":174,"seo":1501,"stem":175,"updated":11,"__hash__":1502},"docs\u002Fdocs\u002F7.reference\u002F4.faq.md",{"type":290,"value":291,"toc":1482},"minimark",[292,306,314,395,398,411,414,475,591,596,600,618,621,719,729,733,737,744,793,804,809,816,826,1068,1077,1081,1088,1170,1176,1181,1185,1196,1239,1252,1257,1261,1270,1337,1341,1345,1371,1375,1379,1385,1391,1395,1400,1474,1478],[293,294,296,297,301,302,305],"h2",{"id":295},"why-does-create-throw-objectcreationexception","Why does ",[298,299,300],"code",{},"Create"," throw ",[298,303,304],{},"ObjectCreationException","?",[307,308,309,310,313],"p",{},"AutoFixture could not finish the object graph. The exception (often ",[298,311,312],{},"ObjectCreationExceptionWithPath",") usually means one of these:",[315,316,317,330],"table",{},[318,319,320],"thead",{},[321,322,323,327],"tr",{},[324,325,326],"th",{},"Cause",[324,328,329],{},"What to do",[331,332,333,358,370],"tbody",{},[321,334,335,339],{},[336,337,338],"td",{},"Interface or abstract type",[336,340,341,342,345,346,348,349,351,352,357],{},"Add ",[343,344,114],"a",{"href":115},", ",[343,347,122],{"href":123},", or ",[343,350,126],{"href":127}," — or ",[343,353,354],{"href":79},[298,355,356],{},"Register"," a concrete type",[321,359,360,363],{},[336,361,362],{},"Circular reference",[336,364,365,366],{},"Replace the default recursion behavior — see ",[343,367,369],{"href":368},"#how-do-i-deal-with-circular-references","below",[321,371,372,375],{},[336,373,374],{},"Property \u002F constructor AutoFixture cannot satisfy",[336,376,377,378,380,381,384,385,384,388,391,392],{},"Use ",[343,379,44],{"href":45}," (",[298,382,383],{},"With"," \u002F ",[298,386,387],{},"Without",[298,389,390],{},"Do",") or a ",[343,393,394],{"href":49},"customization",[307,396,397],{},"Read the request path in the exception — it shows which type failed.",[293,399,401,402,345,405,408,409,305],{"id":400},"whats-the-difference-between-freeze-inject-and-register","What’s the difference between ",[298,403,404],{},"Freeze",[298,406,407],{},"Inject",", and ",[298,410,356],{},[307,412,413],{},"All three change how later requests for a type are resolved:",[315,415,416,426],{},[318,417,418],{},[321,419,420,423],{},[324,421,422],{},"Method",[324,424,425],{},"Meaning",[331,427,428,447,461],{},[321,429,430,435],{},[336,431,432],{},[298,433,434],{},"Freeze\u003CT>()",[336,436,437,438,442,443,446],{},"AutoFixture ",[439,440,441],"strong",{},"creates"," ",[298,444,445],{},"T"," once, then reuses that instance",[321,448,449,454],{},[336,450,451],{},[298,452,453],{},"Inject(instance)",[336,455,456,457,460],{},"You ",[439,458,459],{},"supply"," the instance; every request gets that same object",[321,462,463,468],{},[336,464,465],{},[298,466,467],{},"Register(() => …)",[336,469,470,471,474],{},"You supply a ",[439,472,473],{},"factory","; AutoFixture calls it for each request",[476,477,482],"pre",{"className":478,"code":479,"language":480,"meta":481,"style":481},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","var frozen = fixture.Freeze\u003CClientDto>();          \u002F\u002F AF creates, then reuses\nfixture.Inject(new ClientDto { Name = \"x\" });      \u002F\u002F you own the instance\nfixture.Register(() => DateTime.UtcNow.Date);      \u002F\u002F factory each time\n","csharp","",[298,483,484,524,560],{"__ignoreMap":481},[485,486,489,493,497,501,504,507,510,513,517,520],"span",{"class":487,"line":488},"line",1,[485,490,492],{"class":491},"stxUP","var",[485,494,496],{"class":495},"sswaR"," frozen",[485,498,500],{"class":499},"s_Yst"," = ",[485,502,503],{"class":495},"fixture",[485,505,506],{"class":499},".",[485,508,404],{"class":509},"swoLU",[485,511,512],{"class":499},"\u003C",[485,514,516],{"class":515},"sopvc","ClientDto",[485,518,519],{"class":499},">();          ",[485,521,523],{"class":522},"sYH5r","\u002F\u002F AF creates, then reuses\n",[485,525,527,529,531,533,536,539,542,545,548,550,554,557],{"class":487,"line":526},2,[485,528,503],{"class":495},[485,530,506],{"class":499},[485,532,407],{"class":509},[485,534,535],{"class":499},"(",[485,537,538],{"class":491},"new",[485,540,541],{"class":515}," ClientDto",[485,543,544],{"class":499}," { ",[485,546,547],{"class":495},"Name",[485,549,500],{"class":499},[485,551,553],{"class":552},"sFD8J","\"x\"",[485,555,556],{"class":499}," });      ",[485,558,559],{"class":522},"\u002F\u002F you own the instance\n",[485,561,563,565,567,569,572,575,577,580,582,585,588],{"class":487,"line":562},3,[485,564,503],{"class":495},[485,566,506],{"class":499},[485,568,356],{"class":509},[485,570,571],{"class":499},"(() => ",[485,573,574],{"class":495},"DateTime",[485,576,506],{"class":499},[485,578,579],{"class":495},"UtcNow",[485,581,506],{"class":499},[485,583,584],{"class":495},"Date",[485,586,587],{"class":499},");      ",[485,589,590],{"class":522},"\u002F\u002F factory each time\n",[307,592,593,594],{},"→ ",[343,595,78],{"href":79},[293,597,599],{"id":598},"how-do-i-deal-with-circular-references","How do I deal with circular references?",[307,601,602,603,606,607,610,611,610,614,617],{},"By default AutoFixture ",[439,604,605],{},"throws"," when it detects a loop (for example ",[298,608,609],{},"Session"," → ",[298,612,613],{},"Language",[298,615,616],{},"Sessions","). That is intentional.",[307,619,620],{},"To omit the recursive property instead:",[476,622,624],{"className":478,"code":623,"language":480,"meta":481,"style":481},"fixture.Behaviors\n    .OfType\u003CThrowingRecursionBehavior>()\n    .ToList()\n    .ForEach(b => fixture.Behaviors.Remove(b));\nfixture.Behaviors.Add(new OmitOnRecursionBehavior());\n",[298,625,626,635,651,661,695],{"__ignoreMap":481},[485,627,628,630,632],{"class":487,"line":488},[485,629,503],{"class":495},[485,631,506],{"class":499},[485,633,634],{"class":495},"Behaviors\n",[485,636,637,640,643,645,648],{"class":487,"line":526},[485,638,639],{"class":499},"    .",[485,641,642],{"class":509},"OfType",[485,644,512],{"class":499},[485,646,647],{"class":515},"ThrowingRecursionBehavior",[485,649,650],{"class":499},">()\n",[485,652,653,655,658],{"class":487,"line":562},[485,654,639],{"class":499},[485,656,657],{"class":509},"ToList",[485,659,660],{"class":499},"()\n",[485,662,664,666,669,671,674,677,679,681,683,685,688,690,692],{"class":487,"line":663},4,[485,665,639],{"class":499},[485,667,668],{"class":509},"ForEach",[485,670,535],{"class":499},[485,672,673],{"class":495},"b",[485,675,676],{"class":499}," => ",[485,678,503],{"class":495},[485,680,506],{"class":499},[485,682,56],{"class":495},[485,684,506],{"class":499},[485,686,687],{"class":509},"Remove",[485,689,535],{"class":499},[485,691,673],{"class":495},[485,693,694],{"class":499},"));\n",[485,696,698,700,702,704,706,709,711,713,716],{"class":487,"line":697},5,[485,699,503],{"class":495},[485,701,506],{"class":499},[485,703,56],{"class":495},[485,705,506],{"class":499},[485,707,708],{"class":509},"Add",[485,710,535],{"class":499},[485,712,538],{"class":491},[485,714,715],{"class":515}," OmitOnRecursionBehavior",[485,717,718],{"class":499},"());\n",[307,720,721,722,725,726,728],{},"For a single object, ",[298,723,724],{},"Build"," + ",[298,727,387],{}," can skip the back-reference without changing fixture-wide behavior.",[307,730,593,731],{},[343,732,74],{"href":75},[293,734,736],{"id":735},"why-cant-autofixture-create-my-interface","Why can’t AutoFixture create my interface?",[307,738,739,740,743],{},"AutoFixture builds ",[439,741,742],{},"concrete"," types. It does not invent implementations for interfaces or abstract classes.",[476,745,747],{"className":478,"code":746,"language":480,"meta":481,"style":481},"fixture.Customize(new AutoMoqCustomization());\nvar service = fixture.Create\u003COrderService>(); \u002F\u002F IOrderRepository becomes a Moq mock\n",[298,748,749,767],{"__ignoreMap":481},[485,750,751,753,755,758,760,762,765],{"class":487,"line":488},[485,752,503],{"class":495},[485,754,506],{"class":499},[485,756,757],{"class":509},"Customize",[485,759,535],{"class":499},[485,761,538],{"class":491},[485,763,764],{"class":515}," AutoMoqCustomization",[485,766,718],{"class":499},[485,768,769,771,774,776,778,780,782,784,787,790],{"class":487,"line":526},[485,770,492],{"class":491},[485,772,773],{"class":495}," service",[485,775,500],{"class":499},[485,777,503],{"class":495},[485,779,506],{"class":499},[485,781,300],{"class":509},[485,783,512],{"class":499},[485,785,786],{"class":515},"OrderService",[485,788,789],{"class":499},">(); ",[485,791,792],{"class":522},"\u002F\u002F IOrderRepository becomes a Moq mock\n",[307,794,795,796,799,800,506],{},"Use the same idea with NSubstitute or FakeItEasy. For ",[298,797,798],{},"[AutoData]",", put the customization in a ",[343,801,803],{"href":802},"#how-do-i-share-fixture-setup-across-many-tests","custom AutoData attribute",[307,805,593,806],{},[343,807,808],{"href":102},"Integrations overview",[293,810,812,813,815],{"id":811},"how-do-i-get-mocks-into-autodata-parameters","How do I get mocks into ",[298,814,798],{}," parameters?",[307,817,818,819,821,822,825],{},"Plain ",[298,820,798],{}," has no mocking. Subclass ",[298,823,824],{},"AutoDataAttribute"," so the fixture includes AutoMoq (or another library), then freeze the mock (or the interface):",[476,827,829],{"className":478,"code":828,"language":480,"meta":481,"style":481},"public class AutoMoqDataAttribute : AutoDataAttribute\n{\n    public AutoMoqDataAttribute()\n        : base(() => new Fixture().Customize(new AutoMoqCustomization()))\n    {\n    }\n}\n\n[Theory, AutoMoqData]\npublic void Test(\n    [Frozen] Mock\u003CIOrderRepository> repository,\n    OrderService sut,\n    Order order)\n{\n    sut.PlaceOrder(order);\n    repository.Verify(r => r.Save(order), Times.Once);\n}\n",[298,830,831,848,853,862,891,896,902,908,914,931,945,974,985,997,1002,1021,1063],{"__ignoreMap":481},[485,832,833,836,839,842,845],{"class":487,"line":488},[485,834,835],{"class":491},"public",[485,837,838],{"class":491}," class",[485,840,841],{"class":515}," AutoMoqDataAttribute",[485,843,844],{"class":499}," : ",[485,846,847],{"class":515},"AutoDataAttribute\n",[485,849,850],{"class":487,"line":526},[485,851,852],{"class":499},"{\n",[485,854,855,858,860],{"class":487,"line":562},[485,856,857],{"class":491},"    public",[485,859,841],{"class":509},[485,861,660],{"class":499},[485,863,864,867,870,872,874,877,880,882,884,886,888],{"class":487,"line":663},[485,865,866],{"class":499},"        : ",[485,868,869],{"class":491},"base",[485,871,571],{"class":499},[485,873,538],{"class":491},[485,875,876],{"class":515}," Fixture",[485,878,879],{"class":499},"().",[485,881,757],{"class":509},[485,883,535],{"class":499},[485,885,538],{"class":491},[485,887,764],{"class":515},[485,889,890],{"class":499},"()))\n",[485,892,893],{"class":487,"line":697},[485,894,895],{"class":499},"    {\n",[485,897,899],{"class":487,"line":898},6,[485,900,901],{"class":499},"    }\n",[485,903,905],{"class":487,"line":904},7,[485,906,907],{"class":499},"}\n",[485,909,911],{"class":487,"line":910},8,[485,912,913],{"emptyLinePlaceholder":194},"\n",[485,915,917,920,923,925,928],{"class":487,"line":916},9,[485,918,919],{"class":499},"[",[485,921,922],{"class":515},"Theory",[485,924,345],{"class":499},[485,926,927],{"class":515},"AutoMoqData",[485,929,930],{"class":499},"]\n",[485,932,934,936,939,942],{"class":487,"line":933},10,[485,935,835],{"class":491},[485,937,938],{"class":491}," void",[485,940,941],{"class":509}," Test",[485,943,944],{"class":499},"(\n",[485,946,948,951,954,957,960,962,965,968,971],{"class":487,"line":947},11,[485,949,950],{"class":499},"    [",[485,952,953],{"class":515},"Frozen",[485,955,956],{"class":499},"] ",[485,958,959],{"class":515},"Mock",[485,961,512],{"class":499},[485,963,964],{"class":515},"IOrderRepository",[485,966,967],{"class":499},"> ",[485,969,970],{"class":495},"repository",[485,972,973],{"class":499},",\n",[485,975,977,980,983],{"class":487,"line":976},12,[485,978,979],{"class":515},"    OrderService",[485,981,982],{"class":495}," sut",[485,984,973],{"class":499},[485,986,988,991,994],{"class":487,"line":987},13,[485,989,990],{"class":515},"    Order",[485,992,993],{"class":495}," order",[485,995,996],{"class":499},")\n",[485,998,1000],{"class":487,"line":999},14,[485,1001,852],{"class":499},[485,1003,1005,1008,1010,1013,1015,1018],{"class":487,"line":1004},15,[485,1006,1007],{"class":495},"    sut",[485,1009,506],{"class":499},[485,1011,1012],{"class":509},"PlaceOrder",[485,1014,535],{"class":499},[485,1016,1017],{"class":495},"order",[485,1019,1020],{"class":499},");\n",[485,1022,1024,1027,1029,1032,1034,1037,1039,1041,1043,1046,1048,1050,1053,1056,1058,1061],{"class":487,"line":1023},16,[485,1025,1026],{"class":495},"    repository",[485,1028,506],{"class":499},[485,1030,1031],{"class":509},"Verify",[485,1033,535],{"class":499},[485,1035,1036],{"class":495},"r",[485,1038,676],{"class":499},[485,1040,1036],{"class":495},[485,1042,506],{"class":499},[485,1044,1045],{"class":509},"Save",[485,1047,535],{"class":499},[485,1049,1017],{"class":495},[485,1051,1052],{"class":499},"), ",[485,1054,1055],{"class":495},"Times",[485,1057,506],{"class":499},[485,1059,1060],{"class":495},"Once",[485,1062,1020],{"class":499},[485,1064,1066],{"class":487,"line":1065},17,[485,1067,907],{"class":499},[307,1069,593,1070,1074,1075],{},[343,1071,1073],{"href":1072},"\u002Fdocs\u002Fintegrations\u002Fxunit3#custom-autodata-attribute","xUnit.net 3 — custom AutoData"," · ",[343,1076,114],{"href":115},[293,1078,1080],{"id":1079},"how-do-i-share-fixture-setup-across-many-tests","How do I share fixture setup across many tests?",[307,1082,1083,1084,1087],{},"Don’t repeat ",[298,1085,1086],{},"new Fixture().Customize(...)"," in every test. One custom AutoData attribute holds your team conventions (auto-mocking, recursion behavior, date factories, …):",[476,1089,1091],{"className":478,"code":1090,"language":480,"meta":481,"style":481},"public class DefaultAutoDataAttribute : AutoDataAttribute\n{\n    public DefaultAutoDataAttribute()\n        : base(() => new Fixture()\n            .Customize(new AutoMoqCustomization { ConfigureMembers = true }))\n    {\n    }\n}\n",[298,1092,1093,1106,1110,1118,1132,1158,1162,1166],{"__ignoreMap":481},[485,1094,1095,1097,1099,1102,1104],{"class":487,"line":488},[485,1096,835],{"class":491},[485,1098,838],{"class":491},[485,1100,1101],{"class":515}," DefaultAutoDataAttribute",[485,1103,844],{"class":499},[485,1105,847],{"class":515},[485,1107,1108],{"class":487,"line":526},[485,1109,852],{"class":499},[485,1111,1112,1114,1116],{"class":487,"line":562},[485,1113,857],{"class":491},[485,1115,1101],{"class":509},[485,1117,660],{"class":499},[485,1119,1120,1122,1124,1126,1128,1130],{"class":487,"line":663},[485,1121,866],{"class":499},[485,1123,869],{"class":491},[485,1125,571],{"class":499},[485,1127,538],{"class":491},[485,1129,876],{"class":515},[485,1131,660],{"class":499},[485,1133,1134,1137,1139,1141,1143,1145,1147,1150,1152,1155],{"class":487,"line":697},[485,1135,1136],{"class":499},"            .",[485,1138,757],{"class":509},[485,1140,535],{"class":499},[485,1142,538],{"class":491},[485,1144,764],{"class":515},[485,1146,544],{"class":499},[485,1148,1149],{"class":495},"ConfigureMembers",[485,1151,500],{"class":499},[485,1153,1154],{"class":491},"true",[485,1156,1157],{"class":499}," }))\n",[485,1159,1160],{"class":487,"line":898},[485,1161,895],{"class":499},[485,1163,1164],{"class":487,"line":904},[485,1165,901],{"class":499},[485,1167,1168],{"class":487,"line":910},[485,1169,907],{"class":499},[307,1171,377,1172,1175],{},[298,1173,1174],{},"[DefaultAutoData]"," (and a matching InlineAutoData subclass) on theories.",[307,1177,593,1178],{},[343,1179,1180],{"href":1072},"Custom AutoData attribute",[293,1182,1184],{"id":1183},"i-froze-an-interface-why-isnt-my-sut-using-it","I froze an interface — why isn’t my SUT using it?",[307,1186,1187,1188,1191,1192,1195],{},"Freezing works when the SUT requests the ",[439,1189,1190],{},"same type"," you froze (or a matching type with ",[298,1193,1194],{},"[Frozen(Matching…)]","). Library differences:",[1197,1198,1199,1225],"ul",{},[1200,1201,1202,1205,1206,1209,1210,1213,1214,1217,1218,1220,1221,506],"li",{},[439,1203,1204],{},"Moq"," — prefer ",[298,1207,1208],{},"Freeze\u003CMock\u003CIOrderRepository>>()",". Freezing the interface freezes ",[298,1211,1212],{},"mock.Object","; use ",[298,1215,1216],{},"Mock.Get(repo)"," if you need ",[298,1219,1031],{},". See ",[343,1222,1224],{"href":1223},"\u002Fdocs\u002Fintegrations\u002Fautomoq#mock-wrappers-and-interface-requests","AutoMoq wrappers",[1200,1226,1227,1230,1231,1234,1235,1238],{},[439,1228,1229],{},"NSubstitute \u002F FakeItEasy"," — freeze the ",[439,1232,1233],{},"interface"," (there is no ",[298,1236,1237],{},"Mock\u003CT>"," wrapper). That instance is what the SUT receives.",[307,1240,1241,1242,1245,1246,1248,1249,506],{},"With ",[298,1243,1244],{},"[Frozen]"," on AutoData, parameter ",[439,1247,1017],{}," matters: freeze first, then create the SUT. For a concrete type that should satisfy an interface constructor parameter, use ",[298,1250,1251],{},"[Frozen(Matching.ImplementedInterfaces)]",[307,1253,593,1254],{},[343,1255,953],{"href":1256},"\u002Fdocs\u002Fintegrations\u002Fxunit3#frozen",[293,1258,1260],{"id":1259},"how-do-i-fill-a-get-only-read-only-collection","How do I fill a get-only \u002F read-only collection?",[307,1262,1263,1265,1266,1269],{},[298,1264,383],{}," needs a writable property. For a list exposed with a private setter (or get-only ",[298,1267,1268],{},"IList\u003CT>"," filled in the constructor), mutate after create:",[476,1271,1273],{"className":478,"code":1272,"language":480,"meta":481,"style":481},"var order = fixture.Build\u003COrder>()\n    .Do(o => fixture.AddManyTo(o.OrderLines))\n    .Create();\n",[298,1274,1275,1296,1328],{"__ignoreMap":481},[485,1276,1277,1279,1281,1283,1285,1287,1289,1291,1294],{"class":487,"line":488},[485,1278,492],{"class":491},[485,1280,993],{"class":495},[485,1282,500],{"class":499},[485,1284,503],{"class":495},[485,1286,506],{"class":499},[485,1288,724],{"class":509},[485,1290,512],{"class":499},[485,1292,1293],{"class":515},"Order",[485,1295,650],{"class":499},[485,1297,1298,1300,1302,1304,1307,1309,1311,1313,1316,1318,1320,1322,1325],{"class":487,"line":526},[485,1299,639],{"class":499},[485,1301,390],{"class":509},[485,1303,535],{"class":499},[485,1305,1306],{"class":495},"o",[485,1308,676],{"class":499},[485,1310,503],{"class":495},[485,1312,506],{"class":499},[485,1314,1315],{"class":509},"AddManyTo",[485,1317,535],{"class":499},[485,1319,1306],{"class":495},[485,1321,506],{"class":499},[485,1323,1324],{"class":495},"OrderLines",[485,1326,1327],{"class":499},"))\n",[485,1329,1330,1332,1334],{"class":487,"line":562},[485,1331,639],{"class":499},[485,1333,300],{"class":509},[485,1335,1336],{"class":499},"();\n",[307,1338,593,1339],{},[343,1340,70],{"href":71},[293,1342,1344],{"id":1343},"im-on-autofixture-4-what-changes-in-v5","I’m on AutoFixture 4 — what changes in v5?",[307,1346,1347,1348,1351,1352,384,1354,1356,1357,1360,1361,345,1364,345,1366,345,1368,1370],{},"Pin ",[439,1349,1350],{},"matching"," v5 packages together. Test integrations move to ",[439,1353,283],{},[439,1355,255],{}," and target ",[439,1358,1359],{},".NET 8+",". Core APIs (",[298,1362,1363],{},"Fixture",[298,1365,300],{},[298,1367,724],{},[298,1369,757],{},") stay familiar.",[307,1372,593,1373],{},[343,1374,181],{"href":182},[293,1376,1378],{"id":1377},"is-autofixture-a-di-container-can-i-use-it-in-production","Is AutoFixture a DI container? Can I use it in production?",[307,1380,1381,1384],{},[439,1382,1383],{},"No."," AutoFixture generates anonymous test data. It is not an application composition root and is not meant for production runtime.",[307,1386,1387,1388,1390],{},"For tests that need interfaces, pair it with a mocking library (",[343,1389,114],{"href":115},", and so on) — still only in the test project.",[293,1392,1394],{"id":1393},"generated-values-are-noisy-in-failure-messages-can-i-make-them-readable","Generated values are noisy in failure messages — can I make them readable?",[307,1396,377,1397,1399],{},[439,1398,260],{}," for prefixed strings, or customize how a type is created:",[476,1401,1403],{"className":478,"code":1402,"language":480,"meta":481,"style":481},"var name = fixture.Create(\"Customer\"); \u002F\u002F e.g. \"Customer3f2a…\"\nfixture.Customize\u003Cint>(c => c.FromSeed(seed => seed)); \u002F\u002F stable ints when seeded\n",[298,1404,1405,1431],{"__ignoreMap":481},[485,1406,1407,1409,1412,1414,1416,1418,1420,1422,1425,1428],{"class":487,"line":488},[485,1408,492],{"class":491},[485,1410,1411],{"class":495}," name",[485,1413,500],{"class":499},[485,1415,503],{"class":495},[485,1417,506],{"class":499},[485,1419,300],{"class":509},[485,1421,535],{"class":499},[485,1423,1424],{"class":552},"\"Customer\"",[485,1426,1427],{"class":499},"); ",[485,1429,1430],{"class":522},"\u002F\u002F e.g. \"Customer3f2a…\"\n",[485,1432,1433,1435,1437,1439,1441,1444,1447,1450,1452,1454,1456,1459,1461,1464,1466,1468,1471],{"class":487,"line":526},[485,1434,503],{"class":495},[485,1436,506],{"class":499},[485,1438,757],{"class":509},[485,1440,512],{"class":499},[485,1442,1443],{"class":491},"int",[485,1445,1446],{"class":499},">(",[485,1448,1449],{"class":495},"c",[485,1451,676],{"class":499},[485,1453,1449],{"class":495},[485,1455,506],{"class":499},[485,1457,1458],{"class":509},"FromSeed",[485,1460,535],{"class":499},[485,1462,1463],{"class":495},"seed",[485,1465,676],{"class":499},[485,1467,1463],{"class":495},[485,1469,1470],{"class":499},")); ",[485,1472,1473],{"class":522},"\u002F\u002F stable ints when seeded\n",[307,1475,593,1476],{},[343,1477,96],{"href":97},[1479,1480,1481],"style",{},"html pre.shiki code .stxUP, html code.shiki .stxUP{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#569CD6}html pre.shiki code .sswaR, html code.shiki .sswaR{--shiki-light:#001080;--shiki-default:#001080;--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 .swoLU, html code.shiki .swoLU{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#DCDCAA}html pre.shiki code .sopvc, html code.shiki .sopvc{--shiki-light:#267F99;--shiki-default:#267F99;--shiki-dark:#4EC9B0}html pre.shiki code .sYH5r, html code.shiki .sYH5r{--shiki-light:#008000;--shiki-default:#008000;--shiki-dark:#6A9955}html pre.shiki code .sFD8J, html code.shiki .sFD8J{--shiki-light:#A31515;--shiki-default:#A31515;--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);}",{"title":481,"searchDepth":526,"depth":526,"links":1483},[1484,1486,1488,1489,1490,1492,1493,1494,1495,1496,1497],{"id":295,"depth":526,"text":1485},"Why does Create throw ObjectCreationException?",{"id":400,"depth":526,"text":1487},"What’s the difference between Freeze, Inject, and Register?",{"id":598,"depth":526,"text":599},{"id":735,"depth":526,"text":736},{"id":811,"depth":526,"text":1491},"How do I get mocks into [AutoData] parameters?",{"id":1079,"depth":526,"text":1080},{"id":1183,"depth":526,"text":1184},{"id":1259,"depth":526,"text":1260},{"id":1343,"depth":526,"text":1344},{"id":1377,"depth":526,"text":1378},{"id":1393,"depth":526,"text":1394},"Answers to questions people actually ask about AutoFixture.","md",{},{"title":173,"description":1498},"nOAmBEBWeAgyGg7awN1O7Ro1qI2N-q2vYRneqNBnpYk",[1504,1505],{"title":169,"path":170,"stem":171,"children":-1},{"title":177,"path":178,"stem":179,"children":-1},1788856649908]