[{"data":1,"prerenderedAt":1542},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Ffundamentals\u002Fcustomizations":287,"docs:\u002Fdocs\u002Ffundamentals\u002Fcustomizations-surround":1539},[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":48,"badge":11,"body":289,"description":1534,"extension":1535,"meta":1536,"navigation":194,"path":49,"seo":1537,"stem":50,"updated":11,"__hash__":1538},"docs\u002Fdocs\u002F2.fundamentals\u002F3.customizations.md",{"type":290,"value":291,"toc":1523},"minimark",[292,318,323,330,334,339,509,518,665,674,682,802,810,919,927,1056,1059,1067,1203,1227,1236,1306,1319,1331,1335,1390,1410,1414,1467,1474,1478,1497,1501,1519],[293,294,295,296,300,301,304,305,308,309,313,314,317],"p",{},"Customizations change how AutoFixture builds specific types. Use ",[297,298,299],"code",{},"Register"," when you want to replace creation entirely. Use ",[297,302,303],{},"Customize\u003CT>"," when you want to adjust how a type is built — the same ",[306,307,44],"a",{"href":45}," you use for one-off specimens also works here, but applies to ",[310,311,312],"strong",{},"every"," ",[297,315,316],{},"Create\u003CT>()"," on the fixture.",[319,320,322],"h2",{"id":321},"example-scenario","Example scenario",[293,324,325,326,329],{},"You need every ",[297,327,328],{},"ClientDto"," in a test to use a known age, or you need a type with multiple constructors to always be built a certain way.",[319,331,333],{"id":332},"example","Example",[293,335,336,338],{},[310,337,299],{}," — replace the factory for a type:",[340,341,346],"pre",{"className":342,"code":343,"language":344,"meta":345,"style":345},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","var fixture = new Fixture();\nfixture.Register(() => new ClientDto { Name = \"registered\", Age = 30 });\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(\"registered\", client.Name);\nAssert.Equal(30, client.Age);\n","csharp","",[297,347,348,375,422,428,453,458,486],{"__ignoreMap":345},[349,350,353,357,361,365,368,372],"span",{"class":351,"line":352},"line",1,[349,354,356],{"class":355},"stxUP","var",[349,358,360],{"class":359},"sswaR"," fixture",[349,362,364],{"class":363},"s_Yst"," = ",[349,366,367],{"class":355},"new",[349,369,371],{"class":370},"sopvc"," Fixture",[349,373,374],{"class":363},"();\n",[349,376,378,381,384,387,390,392,395,398,401,403,407,410,413,415,419],{"class":351,"line":377},2,[349,379,380],{"class":359},"fixture",[349,382,383],{"class":363},".",[349,385,299],{"class":386},"swoLU",[349,388,389],{"class":363},"(() => ",[349,391,367],{"class":355},[349,393,394],{"class":370}," ClientDto",[349,396,397],{"class":363}," { ",[349,399,400],{"class":359},"Name",[349,402,364],{"class":363},[349,404,406],{"class":405},"sFD8J","\"registered\"",[349,408,409],{"class":363},", ",[349,411,412],{"class":359},"Age",[349,414,364],{"class":363},[349,416,418],{"class":417},"s-S-M","30",[349,420,421],{"class":363}," });\n",[349,423,425],{"class":351,"line":424},3,[349,426,427],{"emptyLinePlaceholder":194},"\n",[349,429,431,433,436,438,440,442,445,448,450],{"class":351,"line":430},4,[349,432,356],{"class":355},[349,434,435],{"class":359}," client",[349,437,364],{"class":363},[349,439,380],{"class":359},[349,441,383],{"class":363},[349,443,444],{"class":386},"Create",[349,446,447],{"class":363},"\u003C",[349,449,328],{"class":370},[349,451,452],{"class":363},">();\n",[349,454,456],{"class":351,"line":455},5,[349,457,427],{"emptyLinePlaceholder":194},[349,459,461,464,466,469,472,474,476,479,481,483],{"class":351,"line":460},6,[349,462,463],{"class":359},"Assert",[349,465,383],{"class":363},[349,467,468],{"class":386},"Equal",[349,470,471],{"class":363},"(",[349,473,406],{"class":405},[349,475,409],{"class":363},[349,477,478],{"class":359},"client",[349,480,383],{"class":363},[349,482,400],{"class":359},[349,484,485],{"class":363},");\n",[349,487,489,491,493,495,497,499,501,503,505,507],{"class":351,"line":488},7,[349,490,463],{"class":359},[349,492,383],{"class":363},[349,494,468],{"class":386},[349,496,471],{"class":363},[349,498,418],{"class":417},[349,500,409],{"class":363},[349,502,478],{"class":359},[349,504,383],{"class":363},[349,506,412],{"class":359},[349,508,485],{"class":363},[293,510,511,517],{},[310,512,513,514],{},"Customize with ",[297,515,516],{},"With"," — fixture-wide default for one property:",[340,519,521],{"className":342,"code":520,"language":344,"meta":345,"style":345},"var fixture = new Fixture();\nfixture.Customize\u003CClientDto>(composer => composer.With(dto => dto.Age, 21));\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(21, client.Age);\nAssert.False(string.IsNullOrEmpty(client.Name));\n",[297,522,523,537,586,590,610,614,636],{"__ignoreMap":345},[349,524,525,527,529,531,533,535],{"class":351,"line":352},[349,526,356],{"class":355},[349,528,360],{"class":359},[349,530,364],{"class":363},[349,532,367],{"class":355},[349,534,371],{"class":370},[349,536,374],{"class":363},[349,538,539,541,543,546,548,550,553,556,559,561,563,565,567,570,572,574,576,578,580,583],{"class":351,"line":377},[349,540,380],{"class":359},[349,542,383],{"class":363},[349,544,545],{"class":386},"Customize",[349,547,447],{"class":363},[349,549,328],{"class":370},[349,551,552],{"class":363},">(",[349,554,555],{"class":359},"composer",[349,557,558],{"class":363}," => ",[349,560,555],{"class":359},[349,562,383],{"class":363},[349,564,516],{"class":386},[349,566,471],{"class":363},[349,568,569],{"class":359},"dto",[349,571,558],{"class":363},[349,573,569],{"class":359},[349,575,383],{"class":363},[349,577,412],{"class":359},[349,579,409],{"class":363},[349,581,582],{"class":417},"21",[349,584,585],{"class":363},"));\n",[349,587,588],{"class":351,"line":424},[349,589,427],{"emptyLinePlaceholder":194},[349,591,592,594,596,598,600,602,604,606,608],{"class":351,"line":430},[349,593,356],{"class":355},[349,595,435],{"class":359},[349,597,364],{"class":363},[349,599,380],{"class":359},[349,601,383],{"class":363},[349,603,444],{"class":386},[349,605,447],{"class":363},[349,607,328],{"class":370},[349,609,452],{"class":363},[349,611,612],{"class":351,"line":455},[349,613,427],{"emptyLinePlaceholder":194},[349,615,616,618,620,622,624,626,628,630,632,634],{"class":351,"line":460},[349,617,463],{"class":359},[349,619,383],{"class":363},[349,621,468],{"class":386},[349,623,471],{"class":363},[349,625,582],{"class":417},[349,627,409],{"class":363},[349,629,478],{"class":359},[349,631,383],{"class":363},[349,633,412],{"class":359},[349,635,485],{"class":363},[349,637,638,640,642,645,647,650,652,655,657,659,661,663],{"class":351,"line":488},[349,639,463],{"class":359},[349,641,383],{"class":363},[349,643,644],{"class":386},"False",[349,646,471],{"class":363},[349,648,649],{"class":355},"string",[349,651,383],{"class":363},[349,653,654],{"class":386},"IsNullOrEmpty",[349,656,471],{"class":363},[349,658,478],{"class":359},[349,660,383],{"class":363},[349,662,400],{"class":359},[349,664,585],{"class":363},[293,666,667,668,670,671,383],{},"Other properties stay anonymous; only ",[297,669,412],{}," is pinned for every ",[297,672,673],{},"Create\u003CClientDto>()",[293,675,676,681],{},[310,677,513,678],{},[297,679,680],{},"Without"," — leave a property at its default:",[340,683,685],{"className":342,"code":684,"language":344,"meta":345,"style":345},"fixture.Customize\u003CClientDto>(composer => composer.Without(dto => dto.Age));\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(default, client.Age);\nAssert.False(string.IsNullOrEmpty(client.Name));\n",[297,686,687,725,729,749,753,776],{"__ignoreMap":345},[349,688,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723],{"class":351,"line":352},[349,690,380],{"class":359},[349,692,383],{"class":363},[349,694,545],{"class":386},[349,696,447],{"class":363},[349,698,328],{"class":370},[349,700,552],{"class":363},[349,702,555],{"class":359},[349,704,558],{"class":363},[349,706,555],{"class":359},[349,708,383],{"class":363},[349,710,680],{"class":386},[349,712,471],{"class":363},[349,714,569],{"class":359},[349,716,558],{"class":363},[349,718,569],{"class":359},[349,720,383],{"class":363},[349,722,412],{"class":359},[349,724,585],{"class":363},[349,726,727],{"class":351,"line":377},[349,728,427],{"emptyLinePlaceholder":194},[349,730,731,733,735,737,739,741,743,745,747],{"class":351,"line":424},[349,732,356],{"class":355},[349,734,435],{"class":359},[349,736,364],{"class":363},[349,738,380],{"class":359},[349,740,383],{"class":363},[349,742,444],{"class":386},[349,744,447],{"class":363},[349,746,328],{"class":370},[349,748,452],{"class":363},[349,750,751],{"class":351,"line":430},[349,752,427],{"emptyLinePlaceholder":194},[349,754,755,757,759,761,763,766,768,770,772,774],{"class":351,"line":455},[349,756,463],{"class":359},[349,758,383],{"class":363},[349,760,468],{"class":386},[349,762,471],{"class":363},[349,764,765],{"class":355},"default",[349,767,409],{"class":363},[349,769,478],{"class":359},[349,771,383],{"class":363},[349,773,412],{"class":359},[349,775,485],{"class":363},[349,777,778,780,782,784,786,788,790,792,794,796,798,800],{"class":351,"line":460},[349,779,463],{"class":359},[349,781,383],{"class":363},[349,783,644],{"class":386},[349,785,471],{"class":363},[349,787,649],{"class":355},[349,789,383],{"class":363},[349,791,654],{"class":386},[349,793,471],{"class":363},[349,795,478],{"class":359},[349,797,383],{"class":363},[349,799,400],{"class":359},[349,801,585],{"class":363},[293,803,804,809],{},[310,805,513,806],{},[297,807,808],{},"OmitAutoProperties"," — constructor only, no auto-filled properties:",[340,811,813],{"className":342,"code":812,"language":344,"meta":345,"style":345},"fixture.Customize\u003CClientDto>(composer => composer.OmitAutoProperties());\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(string.Empty, client.Name);\nAssert.Equal(default, client.Age);\n",[297,814,815,842,846,866,870,897],{"__ignoreMap":345},[349,816,817,819,821,823,825,827,829,831,833,835,837,839],{"class":351,"line":352},[349,818,380],{"class":359},[349,820,383],{"class":363},[349,822,545],{"class":386},[349,824,447],{"class":363},[349,826,328],{"class":370},[349,828,552],{"class":363},[349,830,555],{"class":359},[349,832,558],{"class":363},[349,834,555],{"class":359},[349,836,383],{"class":363},[349,838,808],{"class":386},[349,840,841],{"class":363},"());\n",[349,843,844],{"class":351,"line":377},[349,845,427],{"emptyLinePlaceholder":194},[349,847,848,850,852,854,856,858,860,862,864],{"class":351,"line":424},[349,849,356],{"class":355},[349,851,435],{"class":359},[349,853,364],{"class":363},[349,855,380],{"class":359},[349,857,383],{"class":363},[349,859,444],{"class":386},[349,861,447],{"class":363},[349,863,328],{"class":370},[349,865,452],{"class":363},[349,867,868],{"class":351,"line":430},[349,869,427],{"emptyLinePlaceholder":194},[349,871,872,874,876,878,880,882,884,887,889,891,893,895],{"class":351,"line":455},[349,873,463],{"class":359},[349,875,383],{"class":363},[349,877,468],{"class":386},[349,879,471],{"class":363},[349,881,649],{"class":355},[349,883,383],{"class":363},[349,885,886],{"class":359},"Empty",[349,888,409],{"class":363},[349,890,478],{"class":359},[349,892,383],{"class":363},[349,894,400],{"class":359},[349,896,485],{"class":363},[349,898,899,901,903,905,907,909,911,913,915,917],{"class":351,"line":460},[349,900,463],{"class":359},[349,902,383],{"class":363},[349,904,468],{"class":386},[349,906,471],{"class":363},[349,908,765],{"class":355},[349,910,409],{"class":363},[349,912,478],{"class":359},[349,914,383],{"class":363},[349,916,412],{"class":359},[349,918,485],{"class":363},[293,920,921,926],{},[310,922,513,923],{},[297,924,925],{},"FromFactory"," — always construct the type your way:",[340,928,930],{"className":342,"code":929,"language":344,"meta":345,"style":345},"fixture.Customize\u003CMultiCtorProduct>(composer =>\n    composer.FromFactory(() => new MultiCtorProduct(\"widget\", 9.99m)));\n\nvar product = fixture.Create\u003CMultiCtorProduct>();\n\nAssert.Equal(\"widget\", product.Name);\nAssert.Equal(9.99m, product.Price);\n",[297,931,932,952,981,985,1006,1010,1033],{"__ignoreMap":345},[349,933,934,936,938,940,942,945,947,949],{"class":351,"line":352},[349,935,380],{"class":359},[349,937,383],{"class":363},[349,939,545],{"class":386},[349,941,447],{"class":363},[349,943,944],{"class":370},"MultiCtorProduct",[349,946,552],{"class":363},[349,948,555],{"class":359},[349,950,951],{"class":363}," =>\n",[349,953,954,957,959,961,963,965,968,970,973,975,978],{"class":351,"line":377},[349,955,956],{"class":359},"    composer",[349,958,383],{"class":363},[349,960,925],{"class":386},[349,962,389],{"class":363},[349,964,367],{"class":355},[349,966,967],{"class":370}," MultiCtorProduct",[349,969,471],{"class":363},[349,971,972],{"class":405},"\"widget\"",[349,974,409],{"class":363},[349,976,977],{"class":417},"9.99m",[349,979,980],{"class":363},")));\n",[349,982,983],{"class":351,"line":424},[349,984,427],{"emptyLinePlaceholder":194},[349,986,987,989,992,994,996,998,1000,1002,1004],{"class":351,"line":430},[349,988,356],{"class":355},[349,990,991],{"class":359}," product",[349,993,364],{"class":363},[349,995,380],{"class":359},[349,997,383],{"class":363},[349,999,444],{"class":386},[349,1001,447],{"class":363},[349,1003,944],{"class":370},[349,1005,452],{"class":363},[349,1007,1008],{"class":351,"line":455},[349,1009,427],{"emptyLinePlaceholder":194},[349,1011,1012,1014,1016,1018,1020,1022,1024,1027,1029,1031],{"class":351,"line":460},[349,1013,463],{"class":359},[349,1015,383],{"class":363},[349,1017,468],{"class":386},[349,1019,471],{"class":363},[349,1021,972],{"class":405},[349,1023,409],{"class":363},[349,1025,1026],{"class":359},"product",[349,1028,383],{"class":363},[349,1030,400],{"class":359},[349,1032,485],{"class":363},[349,1034,1035,1037,1039,1041,1043,1045,1047,1049,1051,1054],{"class":351,"line":488},[349,1036,463],{"class":359},[349,1038,383],{"class":363},[349,1040,468],{"class":386},[349,1042,471],{"class":363},[349,1044,977],{"class":417},[349,1046,409],{"class":363},[349,1048,1026],{"class":359},[349,1050,383],{"class":363},[349,1052,1053],{"class":359},"Price",[349,1055,485],{"class":363},[293,1057,1058],{},"AutoFixture skips its normal constructor selection and calls your factory every time. Use this when you need a specific constructor, or when creation depends on objects you control.",[293,1060,1061,1066],{},[310,1062,513,1063],{},[297,1064,1065],{},"FromSeed"," — map AutoFixture's seed to a value:",[340,1068,1070],{"className":342,"code":1069,"language":344,"meta":345,"style":345},"fixture.Customize\u003Cint>(composer => composer.FromSeed(seed => seed * 10));\n\nvar first = fixture.Create\u003Cint>();\nvar second = fixture.Create\u003Cint>();\n\nAssert.Equal(0, first);\nAssert.Equal(first, second);\n",[297,1071,1072,1114,1118,1139,1160,1164,1184],{"__ignoreMap":345},[349,1073,1074,1076,1078,1080,1082,1085,1087,1089,1091,1093,1095,1097,1099,1102,1104,1106,1109,1112],{"class":351,"line":352},[349,1075,380],{"class":359},[349,1077,383],{"class":363},[349,1079,545],{"class":386},[349,1081,447],{"class":363},[349,1083,1084],{"class":355},"int",[349,1086,552],{"class":363},[349,1088,555],{"class":359},[349,1090,558],{"class":363},[349,1092,555],{"class":359},[349,1094,383],{"class":363},[349,1096,1065],{"class":386},[349,1098,471],{"class":363},[349,1100,1101],{"class":359},"seed",[349,1103,558],{"class":363},[349,1105,1101],{"class":359},[349,1107,1108],{"class":363}," * ",[349,1110,1111],{"class":417},"10",[349,1113,585],{"class":363},[349,1115,1116],{"class":351,"line":377},[349,1117,427],{"emptyLinePlaceholder":194},[349,1119,1120,1122,1125,1127,1129,1131,1133,1135,1137],{"class":351,"line":424},[349,1121,356],{"class":355},[349,1123,1124],{"class":359}," first",[349,1126,364],{"class":363},[349,1128,380],{"class":359},[349,1130,383],{"class":363},[349,1132,444],{"class":386},[349,1134,447],{"class":363},[349,1136,1084],{"class":355},[349,1138,452],{"class":363},[349,1140,1141,1143,1146,1148,1150,1152,1154,1156,1158],{"class":351,"line":430},[349,1142,356],{"class":355},[349,1144,1145],{"class":359}," second",[349,1147,364],{"class":363},[349,1149,380],{"class":359},[349,1151,383],{"class":363},[349,1153,444],{"class":386},[349,1155,447],{"class":363},[349,1157,1084],{"class":355},[349,1159,452],{"class":363},[349,1161,1162],{"class":351,"line":455},[349,1163,427],{"emptyLinePlaceholder":194},[349,1165,1166,1168,1170,1172,1174,1177,1179,1182],{"class":351,"line":460},[349,1167,463],{"class":359},[349,1169,383],{"class":363},[349,1171,468],{"class":386},[349,1173,471],{"class":363},[349,1175,1176],{"class":417},"0",[349,1178,409],{"class":363},[349,1180,1181],{"class":359},"first",[349,1183,485],{"class":363},[349,1185,1186,1188,1190,1192,1194,1196,1198,1201],{"class":351,"line":488},[349,1187,463],{"class":359},[349,1189,383],{"class":363},[349,1191,468],{"class":386},[349,1193,471],{"class":363},[349,1195,1181],{"class":359},[349,1197,409],{"class":363},[349,1199,1200],{"class":359},"second",[349,1202,485],{"class":363},[293,1204,1205,1206,1209,1210,1213,1214,1216,1217,409,1219,1222,1223,1226],{},"Bare ",[297,1207,1208],{},"Create\u003Cint>()"," uses ",[297,1211,1212],{},"default(int)"," as the seed, so both calls return ",[297,1215,1176],{},". With ",[306,1218,96],{"href":97},[297,1220,1221],{},"Create(5)"," returns ",[297,1224,1225],{},"50",". Ints inside object graphs often use string seeds (property or parameter names), so this rule may not apply there — the default random generator still runs.",[1228,1229,1231,1233,1234],"h3",{"id":1230},"fromfactory-vs-fromseed",[297,1232,925],{}," vs ",[297,1235,1065],{},[1237,1238,1239,1256],"table",{},[1240,1241,1242],"thead",{},[1243,1244,1245,1248,1252],"tr",{},[1246,1247],"th",{},[1246,1249,1250],{},[297,1251,925],{},[1246,1253,1254],{},[297,1255,1065],{},[1257,1258,1259,1271,1282,1293],"tbody",{},[1243,1260,1261,1265,1268],{},[1262,1263,1264],"td",{},"Input",[1262,1266,1267],{},"Your factory — no seed",[1262,1269,1270],{},"A seed from AutoFixture's pipeline",[1243,1272,1273,1276,1279],{},[1262,1274,1275],{},"Control",[1262,1277,1278],{},"You own construction entirely",[1262,1280,1281],{},"You transform seed → value",[1243,1283,1284,1287,1290],{},[1262,1285,1286],{},"Typical use",[1262,1288,1289],{},"Pick a constructor, wire known dependencies",[1262,1291,1292],{},"Repeatable values from seed context",[1243,1294,1295,1298,1303],{},[1262,1296,1297],{},"Close to",[1262,1299,1300,1302],{},[297,1301,299],{}," (always your code)",[1262,1304,1305],{},"Seed-aware rule, not full replacement",[293,1307,1308,1311,1312,1314,1315,1318],{},[297,1309,1310],{},"FromFactory(() => new OrderLine(product))"," is right when you must pass a specific ",[297,1313,1026],{},". ",[297,1316,1317],{},"FromSeed(seed => seed * 10)"," is right when you want a deterministic function of whatever seed AutoFixture supplies for that request.",[293,1320,1321,1322,1324,1325,1327,1328,383],{},"You can chain composer methods — for example ",[297,1323,516],{}," and ",[297,1326,680],{}," together — the same way you chain ",[297,1329,1330],{},"fixture.Build\u003CT>()",[319,1332,1334],{"id":1333},"customize-vs-build","Customize vs Build",[1237,1336,1337,1353],{},[1240,1338,1339],{},[1243,1340,1341,1343,1348],{},[1246,1342],{},[1246,1344,1345],{},[297,1346,1347],{},"Customize\u003CT>(...)",[1246,1349,1350],{},[297,1351,1352],{},"Build\u003CT>().Create()",[1257,1354,1355,1369,1380],{},[1243,1356,1357,1360,1366],{},[1262,1358,1359],{},"Scope",[1262,1361,1362,1363,1365],{},"Every ",[297,1364,316],{}," on the fixture",[1262,1367,1368],{},"One specimen",[1243,1370,1371,1374,1377],{},[1262,1372,1373],{},"Customizations on fixture",[1262,1375,1376],{},"Applied",[1262,1378,1379],{},"Bypassed",[1243,1381,1382,1384,1387],{},[1262,1383,1286],{},[1262,1385,1386],{},"Shared defaults across a test class or fixture factory",[1262,1388,1389],{},"One test with specific constraints",[293,1391,1392,1393,409,1396,1398,1399,1402,1403,1405,1406,1409],{},"For graph constraints (",[297,1394,1395],{},"Do",[297,1397,925],{},") or a single pinned object, prefer ",[297,1400,1401],{},"Build",". For team-wide or test-class defaults, prefer ",[297,1404,545],{}," or an ",[306,1407,1408],{"href":61},"ICustomization"," implementation.",[319,1411,1413],{"id":1412},"how-it-works","How it works",[1415,1416,1417,1427,1452,1459],"ul",{},[1418,1419,1420,1423,1424],"li",{},[297,1421,1422],{},"Register\u003CT>(Func\u003CT>)"," — replaces the default factory for ",[297,1425,1426],{},"T",[1418,1428,1429,1432,1433,1435,1436,1438,1439,409,1441,409,1443,409,1445,409,1447,409,1449,1451],{},[297,1430,1431],{},"Customize\u003CT>(Func\u003CIPostprocessComposer\u003CT>, ISpecimenBuilder>)"," — wraps the composer pipeline for ",[297,1434,1426],{},"; pass the same methods as ",[306,1437,44],{"href":45},": ",[297,1440,516],{},[297,1442,680],{},[297,1444,1395],{},[297,1446,925],{},[297,1448,1065],{},[297,1450,808],{},", and others",[1418,1453,1454,1456,1457],{},[297,1455,925],{}," — ignores normal creation and calls your factory for every request for ",[297,1458,1426],{},[1418,1460,1461,1463,1464,1466],{},[297,1462,1065],{}," — maps a seed to a value when the request carries a compatible seed (see the ",[297,1465,1065],{}," example above)",[293,1468,1469,1470,1324,1472,383],{},"See also ",[306,1471,78],{"href":79},[306,1473,60],{"href":61},[319,1475,1477],{"id":1476},"next-steps","Next steps",[1415,1479,1480,1485,1489,1493],{},[1418,1481,1482],{},[306,1483,1484],{"href":144},"Advanced overview",[1418,1486,1487],{},[306,1488,147],{"href":148},[1418,1490,1491],{},[306,1492,52],{"href":53},[1418,1494,1495],{},[306,1496,78],{"href":79},[319,1498,1500],{"id":1499},"api","API",[1415,1502,1503,1511],{},[1418,1504,1505],{},[306,1506,1508],{"href":1507},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.ifixture#register",[297,1509,1510],{},"IFixture.Register",[1418,1512,1513],{},[306,1514,1516],{"href":1515},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.ifixture#customize",[297,1517,1518],{},"IFixture.Customize",[1520,1521,1522],"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 .sopvc, html code.shiki .sopvc{--shiki-light:#267F99;--shiki-default:#267F99;--shiki-dark:#4EC9B0}html pre.shiki code .swoLU, html code.shiki .swoLU{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#DCDCAA}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 .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":345,"searchDepth":377,"depth":377,"links":1524},[1525,1526,1530,1531,1532,1533],{"id":321,"depth":377,"text":322},{"id":332,"depth":377,"text":333,"children":1527},[1528],{"id":1230,"depth":424,"text":1529},"FromFactory vs FromSeed",{"id":1333,"depth":377,"text":1334},{"id":1412,"depth":377,"text":1413},{"id":1476,"depth":377,"text":1477},{"id":1499,"depth":377,"text":1500},"Register factories and Customize composers to control how AutoFixture creates specimens.","md",{},{"title":48,"description":1534},"qtS4Kr32N_ozujNypp4m0iYiTNWbQhiWYAKmWhIezQQ",[1540,1541],{"title":44,"path":45,"stem":46,"children":-1},{"title":52,"path":53,"stem":54,"children":-1},1788856644422]