[{"data":1,"prerenderedAt":2083},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Fintegrations\u002Fautomoq":287,"docs:\u002Fdocs\u002Fintegrations\u002Fautomoq-surround":2080},[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":114,"badge":11,"body":289,"description":2075,"extension":2076,"meta":2077,"navigation":194,"path":115,"seo":2078,"stem":116,"updated":11,"__hash__":2079},"docs\u002Fdocs\u002F5.integrations\u002F02.automoq.md",{"type":290,"value":291,"toc":2059},"minimark",[292,308,318,323,337,341,350,357,447,454,458,473,477,674,687,701,705,722,799,809,964,973,977,989,1070,1130,1134,1145,1181,1262,1269,1392,1404,1415,1424,1445,1454,1457,1471,1516,1682,1685,1692,1828,1834,1837,1852,1858,1924,1930,1934,1988,1992,2024,2028,2055],[293,294,295,302,303,307],"p",{},[296,297,301],"a",{"href":298,"rel":299},"https:\u002F\u002Fgithub.com\u002Fmoq\u002Fmoq",[300],"nofollow","Moq"," is a .NET mocking library. You create ",[304,305,306],"code",{},"Mock\u003CT>"," instances for interfaces and abstract types, then set up return values and verify calls.",[293,309,310,313,314,317],{},[311,312,217],"strong",{}," plugs Moq into AutoFixture. When AutoFixture builds an object graph and needs an interface or abstract dependency, AutoMoq supplies a Moq mock instead of failing — so you can ",[304,315,316],{},"Freeze"," mocks and assert on them with less manual setup.",[319,320,322],"h2",{"id":321},"prerequisites","Prerequisites",[324,325,326,330,335],"ul",{},[327,328,329],"li",{},".NET 8+ test project",[327,331,332,334],{},[296,333,193],{"href":22}," 5.0.0-rc.1",[327,336,301],{},[319,338,340],{"id":339},"install","Install",[293,342,343,344,346,347,349],{},"Install ",[311,345,217],{}," and add an explicit ",[311,348,301],{}," package reference in the same test project.",[293,351,352,353,356],{},"AutoMoq depends on Moq, but that dependency version stays intentionally low so AutoMoq remains compatible with a wide range of Moq releases. If you rely only on the transitive Moq reference, you may get an older Moq without the latest features and fixes. Reference the ",[311,354,355],{},"latest Moq"," yourself alongside AutoMoq.",[358,359,364],"pre",{"className":360,"code":361,"language":362,"meta":363,"style":363},"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.AutoMoq\" Version=\"5.0.0-rc.1\" \u002F>\n\u003CPackageReference Include=\"Moq\" Version=\"4.20.72\" \u002F>\n","xml","",[304,365,366,402,424],{"__ignoreMap":363},[367,368,371,375,379,383,387,391,394,396,399],"span",{"class":369,"line":370},"line",1,[367,372,374],{"class":373},"s9Xrk","\u003C",[367,376,378],{"class":377},"swrg_","PackageReference",[367,380,382],{"class":381},"ssBXb"," Include",[367,384,386],{"class":385},"s_Yst","=",[367,388,390],{"class":389},"swG-L","\"AutoFixture\"",[367,392,393],{"class":381}," Version",[367,395,386],{"class":385},[367,397,398],{"class":389},"\"5.0.0-rc.1\"",[367,400,401],{"class":373}," \u002F>\n",[367,403,405,407,409,411,413,416,418,420,422],{"class":369,"line":404},2,[367,406,374],{"class":373},[367,408,378],{"class":377},[367,410,382],{"class":381},[367,412,386],{"class":385},[367,414,415],{"class":389},"\"AutoFixture.AutoMoq\"",[367,417,393],{"class":381},[367,419,386],{"class":385},[367,421,398],{"class":389},[367,423,401],{"class":373},[367,425,427,429,431,433,435,438,440,442,445],{"class":369,"line":426},3,[367,428,374],{"class":373},[367,430,378],{"class":377},[367,432,382],{"class":381},[367,434,386],{"class":385},[367,436,437],{"class":389},"\"Moq\"",[367,439,393],{"class":381},[367,441,386],{"class":385},[367,443,444],{"class":389},"\"4.20.72\"",[367,446,401],{"class":373},[293,448,449,450,453],{},"Pin ",[311,451,452],{},"matching versions"," of AutoFixture and AutoFixture.AutoMoq. Do not mix v4 and v5 AutoFixture packages in the same project. Keep your explicit Moq reference on the newest available version when you update packages.",[319,455,457],{"id":456},"example-scenario","Example scenario",[293,459,460,461,464,465,468,469,472],{},"You are testing ",[304,462,463],{},"OrderService",", which depends on ",[304,466,467],{},"IOrderRepository",". The test should verify that placing an order calls ",[304,470,471],{},"Save"," on the repository — without hand-writing a mock setup for every test. Other tests need mock methods to return fixture values, or Moq-backed delegates.",[319,474,476],{"id":475},"basic-usage","Basic usage",[358,478,482],{"className":479,"code":480,"language":481,"meta":363,"style":363},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","var fixture = new Fixture().Customize(new AutoMoqCustomization());\nvar repository = fixture.Freeze\u003CMock\u003CIOrderRepository>>();\n\nvar service = fixture.Create\u003COrderService>();\n\nvar order = fixture.Create\u003COrder>();\nservice.PlaceOrder(order);\n\nrepository.Verify(r => r.Save(order), Times.Once);\n","csharp",[304,483,484,522,551,556,580,585,608,627,632],{"__ignoreMap":363},[367,485,486,490,494,497,500,504,507,511,514,516,519],{"class":369,"line":370},[367,487,489],{"class":488},"stxUP","var",[367,491,493],{"class":492},"sswaR"," fixture",[367,495,496],{"class":385}," = ",[367,498,499],{"class":488},"new",[367,501,503],{"class":502},"sopvc"," Fixture",[367,505,506],{"class":385},"().",[367,508,510],{"class":509},"swoLU","Customize",[367,512,513],{"class":385},"(",[367,515,499],{"class":488},[367,517,518],{"class":502}," AutoMoqCustomization",[367,520,521],{"class":385},"());\n",[367,523,524,526,529,531,534,537,539,541,544,546,548],{"class":369,"line":404},[367,525,489],{"class":488},[367,527,528],{"class":492}," repository",[367,530,496],{"class":385},[367,532,533],{"class":492},"fixture",[367,535,536],{"class":385},".",[367,538,316],{"class":509},[367,540,374],{"class":385},[367,542,543],{"class":502},"Mock",[367,545,374],{"class":385},[367,547,467],{"class":502},[367,549,550],{"class":385},">>();\n",[367,552,553],{"class":369,"line":426},[367,554,555],{"emptyLinePlaceholder":194},"\n",[367,557,559,561,564,566,568,570,573,575,577],{"class":369,"line":558},4,[367,560,489],{"class":488},[367,562,563],{"class":492}," service",[367,565,496],{"class":385},[367,567,533],{"class":492},[367,569,536],{"class":385},[367,571,572],{"class":509},"Create",[367,574,374],{"class":385},[367,576,463],{"class":502},[367,578,579],{"class":385},">();\n",[367,581,583],{"class":369,"line":582},5,[367,584,555],{"emptyLinePlaceholder":194},[367,586,588,590,593,595,597,599,601,603,606],{"class":369,"line":587},6,[367,589,489],{"class":488},[367,591,592],{"class":492}," order",[367,594,496],{"class":385},[367,596,533],{"class":492},[367,598,536],{"class":385},[367,600,572],{"class":509},[367,602,374],{"class":385},[367,604,605],{"class":502},"Order",[367,607,579],{"class":385},[367,609,611,614,616,619,621,624],{"class":369,"line":610},7,[367,612,613],{"class":492},"service",[367,615,536],{"class":385},[367,617,618],{"class":509},"PlaceOrder",[367,620,513],{"class":385},[367,622,623],{"class":492},"order",[367,625,626],{"class":385},");\n",[367,628,630],{"class":369,"line":629},8,[367,631,555],{"emptyLinePlaceholder":194},[367,633,635,638,640,643,645,648,651,653,655,657,659,661,664,667,669,672],{"class":369,"line":634},9,[367,636,637],{"class":492},"repository",[367,639,536],{"class":385},[367,641,642],{"class":509},"Verify",[367,644,513],{"class":385},[367,646,647],{"class":492},"r",[367,649,650],{"class":385}," => ",[367,652,647],{"class":492},[367,654,536],{"class":385},[367,656,471],{"class":509},[367,658,513],{"class":385},[367,660,623],{"class":492},[367,662,663],{"class":385},"), ",[367,665,666],{"class":492},"Times",[367,668,536],{"class":385},[367,670,671],{"class":492},"Once",[367,673,626],{"class":385},[293,675,676,679,680,682,683,686],{},[304,677,678],{},"Create\u003COrderService>()"," injects a mock ",[304,681,467],{},". ",[304,684,685],{},"Freeze\u003CMock\u003CIOrderRepository>>()"," keeps one mock instance so you can verify calls.",[293,688,689,690,692,693,697,698,536],{},"Combine with ",[296,691,110],{"href":111}," via a ",[296,694,696],{"href":695},"\u002Fdocs\u002Fintegrations\u002Fxunit3#custom-autodata-attribute","custom AutoData attribute"," when tests use ",[304,699,700],{},"[AutoData]",[319,702,704],{"id":703},"mock-wrappers-and-interface-requests","Mock wrappers and interface requests",[293,706,707,708,710,711,714,715,718,719,721],{},"AutoMoq registers builders for both ",[304,709,306],{}," and the mocked type ",[304,712,713],{},"T"," (interfaces and abstract classes). Prefer freezing the mock when you need ",[304,716,717],{},"Setup"," \u002F ",[304,720,642],{},":",[358,723,725],{"className":479,"code":724,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization());\nvar repository = fixture.Freeze\u003CMock\u003CIOrderRepository>>();\n\nvar service = fixture.Create\u003COrderService>();\n",[304,726,727,751,775,779],{"__ignoreMap":363},[367,728,729,731,733,735,737,739,741,743,745,747,749],{"class":369,"line":370},[367,730,489],{"class":488},[367,732,493],{"class":492},[367,734,496],{"class":385},[367,736,499],{"class":488},[367,738,503],{"class":502},[367,740,506],{"class":385},[367,742,510],{"class":509},[367,744,513],{"class":385},[367,746,499],{"class":488},[367,748,518],{"class":502},[367,750,521],{"class":385},[367,752,753,755,757,759,761,763,765,767,769,771,773],{"class":369,"line":404},[367,754,489],{"class":488},[367,756,528],{"class":492},[367,758,496],{"class":385},[367,760,533],{"class":492},[367,762,536],{"class":385},[367,764,316],{"class":509},[367,766,374],{"class":385},[367,768,543],{"class":502},[367,770,374],{"class":385},[367,772,467],{"class":502},[367,774,550],{"class":385},[367,776,777],{"class":369,"line":426},[367,778,555],{"emptyLinePlaceholder":194},[367,780,781,783,785,787,789,791,793,795,797],{"class":369,"line":558},[367,782,489],{"class":488},[367,784,563],{"class":492},[367,786,496],{"class":385},[367,788,533],{"class":492},[367,790,536],{"class":385},[367,792,572],{"class":509},[367,794,374],{"class":385},[367,796,463],{"class":502},[367,798,579],{"class":385},[293,800,801,802,805,806,721],{},"Freezing the interface works too — the relay returns ",[304,803,804],{},"mock.Object",", and you can recover the mock with ",[304,807,808],{},"Mock.Get",[358,810,812],{"className":479,"code":811,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization());\nvar repository = fixture.Freeze\u003CIOrderRepository>();\n\nvar service = fixture.Create\u003COrderService>();\nvar order = fixture.Create\u003COrder>();\nservice.PlaceOrder(order);\n\nMock.Get(repository).Verify(r => r.Save(order), Times.Once);\n",[304,813,814,838,858,862,882,902,916,920],{"__ignoreMap":363},[367,815,816,818,820,822,824,826,828,830,832,834,836],{"class":369,"line":370},[367,817,489],{"class":488},[367,819,493],{"class":492},[367,821,496],{"class":385},[367,823,499],{"class":488},[367,825,503],{"class":502},[367,827,506],{"class":385},[367,829,510],{"class":509},[367,831,513],{"class":385},[367,833,499],{"class":488},[367,835,518],{"class":502},[367,837,521],{"class":385},[367,839,840,842,844,846,848,850,852,854,856],{"class":369,"line":404},[367,841,489],{"class":488},[367,843,528],{"class":492},[367,845,496],{"class":385},[367,847,533],{"class":492},[367,849,536],{"class":385},[367,851,316],{"class":509},[367,853,374],{"class":385},[367,855,467],{"class":502},[367,857,579],{"class":385},[367,859,860],{"class":369,"line":426},[367,861,555],{"emptyLinePlaceholder":194},[367,863,864,866,868,870,872,874,876,878,880],{"class":369,"line":558},[367,865,489],{"class":488},[367,867,563],{"class":492},[367,869,496],{"class":385},[367,871,533],{"class":492},[367,873,536],{"class":385},[367,875,572],{"class":509},[367,877,374],{"class":385},[367,879,463],{"class":502},[367,881,579],{"class":385},[367,883,884,886,888,890,892,894,896,898,900],{"class":369,"line":582},[367,885,489],{"class":488},[367,887,592],{"class":492},[367,889,496],{"class":385},[367,891,533],{"class":492},[367,893,536],{"class":385},[367,895,572],{"class":509},[367,897,374],{"class":385},[367,899,605],{"class":502},[367,901,579],{"class":385},[367,903,904,906,908,910,912,914],{"class":369,"line":587},[367,905,613],{"class":492},[367,907,536],{"class":385},[367,909,618],{"class":509},[367,911,513],{"class":385},[367,913,623],{"class":492},[367,915,626],{"class":385},[367,917,918],{"class":369,"line":610},[367,919,555],{"emptyLinePlaceholder":194},[367,921,922,924,926,929,931,933,936,938,940,942,944,946,948,950,952,954,956,958,960,962],{"class":369,"line":629},[367,923,543],{"class":492},[367,925,536],{"class":385},[367,927,928],{"class":509},"Get",[367,930,513],{"class":385},[367,932,637],{"class":492},[367,934,935],{"class":385},").",[367,937,642],{"class":509},[367,939,513],{"class":385},[367,941,647],{"class":492},[367,943,650],{"class":385},[367,945,647],{"class":492},[367,947,536],{"class":385},[367,949,471],{"class":509},[367,951,513],{"class":385},[367,953,623],{"class":492},[367,955,663],{"class":385},[367,957,666],{"class":492},[367,959,536],{"class":385},[367,961,671],{"class":492},[367,963,626],{"class":385},[293,965,966,969,970,972],{},[304,967,968],{},"Create\u003CMock\u003CT>>()"," builds a configured ",[304,971,306],{}," when you want the wrapper without freezing.",[319,974,976],{"id":975},"configuration-options","Configuration options",[293,978,979,985,986,988],{},[296,980,982],{"href":981},"\u002Fapi\u002Fautomoq\u002F5-0-0-rc-1\u002Fautofixture.automoq.automoqcustomization",[304,983,984],{},"AutoMoqCustomization"," exposes properties you set before calling ",[304,987,510],{},". Defaults are all off \u002F default relay:",[990,991,992,1008],"table",{},[993,994,995],"thead",{},[996,997,998,1002,1005],"tr",{},[999,1000,1001],"th",{},"Property",[999,1003,1004],{},"Default",[999,1006,1007],{},"Effect",[1009,1010,1011,1031,1055],"tbody",{},[996,1012,1013,1019,1024],{},[1014,1015,1016],"td",{},[304,1017,1018],{},"ConfigureMembers",[1014,1020,1021],{},[304,1022,1023],{},"false",[1014,1025,1026,1027,1030],{},"When ",[304,1028,1029],{},"true",", mock members return values from the fixture",[996,1032,1033,1038,1042],{},[1014,1034,1035],{},[304,1036,1037],{},"GenerateDelegates",[1014,1039,1040],{},[304,1041,1023],{},[1014,1043,1026,1044,1046,1047,1050,1051,1054],{},[304,1045,1029],{},", Moq creates delegates (",[304,1048,1049],{},"Func",", ",[304,1052,1053],{},"Action",", …)",[996,1056,1057,1062,1067],{},[1014,1058,1059],{},[304,1060,1061],{},"Relay",[1014,1063,1064],{},[304,1065,1066],{},"MockRelay",[1014,1068,1069],{},"Residue collector that turns interface\u002Fabstract requests into mocks",[358,1071,1073],{"className":479,"code":1072,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization\n{\n    ConfigureMembers = true,\n    GenerateDelegates = true\n});\n",[304,1074,1075,1098,1103,1115,1125],{"__ignoreMap":363},[367,1076,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095],{"class":369,"line":370},[367,1078,489],{"class":488},[367,1080,493],{"class":492},[367,1082,496],{"class":385},[367,1084,499],{"class":488},[367,1086,503],{"class":502},[367,1088,506],{"class":385},[367,1090,510],{"class":509},[367,1092,513],{"class":385},[367,1094,499],{"class":488},[367,1096,1097],{"class":502}," AutoMoqCustomization\n",[367,1099,1100],{"class":369,"line":404},[367,1101,1102],{"class":385},"{\n",[367,1104,1105,1108,1110,1112],{"class":369,"line":426},[367,1106,1107],{"class":492},"    ConfigureMembers",[367,1109,496],{"class":385},[367,1111,1029],{"class":488},[367,1113,1114],{"class":385},",\n",[367,1116,1117,1120,1122],{"class":369,"line":558},[367,1118,1119],{"class":492},"    GenerateDelegates",[367,1121,496],{"class":385},[367,1123,1124],{"class":488},"true\n",[367,1126,1127],{"class":369,"line":582},[367,1128,1129],{"class":385},"});\n",[1131,1132,1018],"h3",{"id":1133},"configuremembers",[293,1135,1136,1137,1140,1141,1144],{},"With the default (",[304,1138,1139],{},"ConfigureMembers = false","), Moq uses its usual loose defaults — methods return ",[304,1142,1143],{},"default"," unless you set them up:",[358,1146,1148],{"className":479,"code":1147,"language":481,"meta":363,"style":363},"public interface IGreeter\n{\n    string Greet();\n}\n",[304,1149,1150,1161,1165,1176],{"__ignoreMap":363},[367,1151,1152,1155,1158],{"class":369,"line":370},[367,1153,1154],{"class":488},"public",[367,1156,1157],{"class":488}," interface",[367,1159,1160],{"class":502}," IGreeter\n",[367,1162,1163],{"class":369,"line":404},[367,1164,1102],{"class":385},[367,1166,1167,1170,1173],{"class":369,"line":426},[367,1168,1169],{"class":488},"    string",[367,1171,1172],{"class":509}," Greet",[367,1174,1175],{"class":385},"();\n",[367,1177,1178],{"class":369,"line":558},[367,1179,1180],{"class":385},"}\n",[358,1182,1184],{"className":479,"code":1183,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization());\n\nvar greeter = fixture.Create\u003CIGreeter>();\n\nAssert.Null(greeter.Greet());\n",[304,1185,1186,1210,1214,1236,1240],{"__ignoreMap":363},[367,1187,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208],{"class":369,"line":370},[367,1189,489],{"class":488},[367,1191,493],{"class":492},[367,1193,496],{"class":385},[367,1195,499],{"class":488},[367,1197,503],{"class":502},[367,1199,506],{"class":385},[367,1201,510],{"class":509},[367,1203,513],{"class":385},[367,1205,499],{"class":488},[367,1207,518],{"class":502},[367,1209,521],{"class":385},[367,1211,1212],{"class":369,"line":404},[367,1213,555],{"emptyLinePlaceholder":194},[367,1215,1216,1218,1221,1223,1225,1227,1229,1231,1234],{"class":369,"line":426},[367,1217,489],{"class":488},[367,1219,1220],{"class":492}," greeter",[367,1222,496],{"class":385},[367,1224,533],{"class":492},[367,1226,536],{"class":385},[367,1228,572],{"class":509},[367,1230,374],{"class":385},[367,1232,1233],{"class":502},"IGreeter",[367,1235,579],{"class":385},[367,1237,1238],{"class":369,"line":558},[367,1239,555],{"emptyLinePlaceholder":194},[367,1241,1242,1245,1247,1250,1252,1255,1257,1260],{"class":369,"line":582},[367,1243,1244],{"class":492},"Assert",[367,1246,536],{"class":385},[367,1248,1249],{"class":509},"Null",[367,1251,513],{"class":385},[367,1253,1254],{"class":492},"greeter",[367,1256,536],{"class":385},[367,1258,1259],{"class":509},"Greet",[367,1261,521],{"class":385},[293,1263,1264,1265,1268],{},"With ",[304,1266,1267],{},"ConfigureMembers = true",", AutoFixture sets up mock members so calls return specimens from the fixture (and stubs overridable properties like real properties):",[358,1270,1272],{"className":479,"code":1271,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization\n{\n    ConfigureMembers = true\n});\nvar order = fixture.Freeze\u003COrder>();\n\nvar repository = fixture.Create\u003CICommerceOrderRepository>();\n\nAssert.Same(order, repository.GetById(1));\n",[304,1273,1274,1296,1300,1308,1312,1332,1336,1357,1361],{"__ignoreMap":363},[367,1275,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294],{"class":369,"line":370},[367,1277,489],{"class":488},[367,1279,493],{"class":492},[367,1281,496],{"class":385},[367,1283,499],{"class":488},[367,1285,503],{"class":502},[367,1287,506],{"class":385},[367,1289,510],{"class":509},[367,1291,513],{"class":385},[367,1293,499],{"class":488},[367,1295,1097],{"class":502},[367,1297,1298],{"class":369,"line":404},[367,1299,1102],{"class":385},[367,1301,1302,1304,1306],{"class":369,"line":426},[367,1303,1107],{"class":492},[367,1305,496],{"class":385},[367,1307,1124],{"class":488},[367,1309,1310],{"class":369,"line":558},[367,1311,1129],{"class":385},[367,1313,1314,1316,1318,1320,1322,1324,1326,1328,1330],{"class":369,"line":582},[367,1315,489],{"class":488},[367,1317,592],{"class":492},[367,1319,496],{"class":385},[367,1321,533],{"class":492},[367,1323,536],{"class":385},[367,1325,316],{"class":509},[367,1327,374],{"class":385},[367,1329,605],{"class":502},[367,1331,579],{"class":385},[367,1333,1334],{"class":369,"line":587},[367,1335,555],{"emptyLinePlaceholder":194},[367,1337,1338,1340,1342,1344,1346,1348,1350,1352,1355],{"class":369,"line":610},[367,1339,489],{"class":488},[367,1341,528],{"class":492},[367,1343,496],{"class":385},[367,1345,533],{"class":492},[367,1347,536],{"class":385},[367,1349,572],{"class":509},[367,1351,374],{"class":385},[367,1353,1354],{"class":502},"ICommerceOrderRepository",[367,1356,579],{"class":385},[367,1358,1359],{"class":369,"line":629},[367,1360,555],{"emptyLinePlaceholder":194},[367,1362,1363,1365,1367,1370,1372,1374,1376,1378,1380,1383,1385,1389],{"class":369,"line":634},[367,1364,1244],{"class":492},[367,1366,536],{"class":385},[367,1368,1369],{"class":509},"Same",[367,1371,513],{"class":385},[367,1373,623],{"class":492},[367,1375,1050],{"class":385},[367,1377,637],{"class":492},[367,1379,536],{"class":385},[367,1381,1382],{"class":509},"GetById",[367,1384,513],{"class":385},[367,1386,1388],{"class":1387},"s-S-M","1",[367,1390,1391],{"class":385},"));\n",[293,1393,1394,1395,1397,1398,1400,1401,1403],{},"Use ",[304,1396,1018],{}," when the SUT reads from collaborators and you want anonymous return values without writing ",[304,1399,717],{}," for every member. Prefer the default when you only care about verifying calls (as in the basic ",[304,1402,642],{}," example).",[293,1405,1406,1407,1410,1411,1414],{},"The older ",[304,1408,1409],{},"AutoConfiguredMoqCustomization"," type is obsolete — use ",[304,1412,1413],{},"new AutoMoqCustomization { ConfigureMembers = true }"," instead.",[293,1416,1417,1419,1420,1423],{},[304,1418,1018],{}," does ",[311,1421,1422],{},"not"," set up every member. AutoMoq skips:",[324,1425,1426,1429,1436,1439],{},[327,1427,1428],{},"Generic methods (Moq cannot anticipate type arguments)",[327,1430,1431,1432,1435],{},"Methods with ",[304,1433,1434],{},"ref"," parameters",[327,1437,1438],{},"Sealed methods",[327,1440,1441,1442,1435],{},"Void methods without ",[304,1443,1444],{},"out",[293,1446,1447,1448,536],{},"For those cases, set up the mock yourself — for example with ",[296,1449,1451],{"href":1450},"#returnsusingfixture",[304,1452,1453],{},"ReturnsUsingFixture",[1131,1455,1453],{"id":1456},"returnsusingfixture",[293,1458,1459,1464,1465,1467,1468,1470],{},[296,1460,1462],{"href":1461},"\u002Fapi\u002Fautomoq\u002F5-0-0-rc-1\u002Fautofixture.automoq.mocktype",[304,1463,1453],{}," is a Moq ",[304,1466,717],{}," extension that returns the next specimen of the member's return type from the fixture. Use it for members ",[304,1469,1018],{}," cannot cover (especially generics):",[358,1472,1474],{"className":479,"code":1473,"language":481,"meta":363,"style":363},"public interface IConverter\n{\n    T Convert\u003CT>(string value);\n}\n",[304,1475,1476,1485,1489,1512],{"__ignoreMap":363},[367,1477,1478,1480,1482],{"class":369,"line":370},[367,1479,1154],{"class":488},[367,1481,1157],{"class":488},[367,1483,1484],{"class":502}," IConverter\n",[367,1486,1487],{"class":369,"line":404},[367,1488,1102],{"class":385},[367,1490,1491,1494,1497,1499,1501,1504,1507,1510],{"class":369,"line":426},[367,1492,1493],{"class":502},"    T",[367,1495,1496],{"class":509}," Convert",[367,1498,374],{"class":385},[367,1500,713],{"class":502},[367,1502,1503],{"class":385},">(",[367,1505,1506],{"class":488},"string",[367,1508,1509],{"class":492}," value",[367,1511,626],{"class":385},[367,1513,1514],{"class":369,"line":558},[367,1515,1180],{"class":385},[358,1517,1519],{"className":479,"code":1518,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization());\nvar converter = fixture.Freeze\u003CMock\u003CIConverter>>();\nvar expected = fixture.Freeze\u003Cdouble>();\n\nconverter.Setup(c => c.Convert\u003Cdouble>(\"10.0\")).ReturnsUsingFixture(fixture);\n\nAssert.Equal(expected, converter.Object.Convert\u003Cdouble>(\"10.0\"));\n",[304,1520,1521,1545,1571,1593,1597,1641,1645],{"__ignoreMap":363},[367,1522,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543],{"class":369,"line":370},[367,1524,489],{"class":488},[367,1526,493],{"class":492},[367,1528,496],{"class":385},[367,1530,499],{"class":488},[367,1532,503],{"class":502},[367,1534,506],{"class":385},[367,1536,510],{"class":509},[367,1538,513],{"class":385},[367,1540,499],{"class":488},[367,1542,518],{"class":502},[367,1544,521],{"class":385},[367,1546,1547,1549,1552,1554,1556,1558,1560,1562,1564,1566,1569],{"class":369,"line":404},[367,1548,489],{"class":488},[367,1550,1551],{"class":492}," converter",[367,1553,496],{"class":385},[367,1555,533],{"class":492},[367,1557,536],{"class":385},[367,1559,316],{"class":509},[367,1561,374],{"class":385},[367,1563,543],{"class":502},[367,1565,374],{"class":385},[367,1567,1568],{"class":502},"IConverter",[367,1570,550],{"class":385},[367,1572,1573,1575,1578,1580,1582,1584,1586,1588,1591],{"class":369,"line":426},[367,1574,489],{"class":488},[367,1576,1577],{"class":492}," expected",[367,1579,496],{"class":385},[367,1581,533],{"class":492},[367,1583,536],{"class":385},[367,1585,316],{"class":509},[367,1587,374],{"class":385},[367,1589,1590],{"class":488},"double",[367,1592,579],{"class":385},[367,1594,1595],{"class":369,"line":558},[367,1596,555],{"emptyLinePlaceholder":194},[367,1598,1599,1602,1604,1606,1608,1611,1613,1615,1617,1620,1622,1624,1626,1630,1633,1635,1637,1639],{"class":369,"line":582},[367,1600,1601],{"class":492},"converter",[367,1603,536],{"class":385},[367,1605,717],{"class":509},[367,1607,513],{"class":385},[367,1609,1610],{"class":492},"c",[367,1612,650],{"class":385},[367,1614,1610],{"class":492},[367,1616,536],{"class":385},[367,1618,1619],{"class":509},"Convert",[367,1621,374],{"class":385},[367,1623,1590],{"class":488},[367,1625,1503],{"class":385},[367,1627,1629],{"class":1628},"sFD8J","\"10.0\"",[367,1631,1632],{"class":385},")).",[367,1634,1453],{"class":509},[367,1636,513],{"class":385},[367,1638,533],{"class":492},[367,1640,626],{"class":385},[367,1642,1643],{"class":369,"line":587},[367,1644,555],{"emptyLinePlaceholder":194},[367,1646,1647,1649,1651,1654,1656,1659,1661,1663,1665,1668,1670,1672,1674,1676,1678,1680],{"class":369,"line":610},[367,1648,1244],{"class":492},[367,1650,536],{"class":385},[367,1652,1653],{"class":509},"Equal",[367,1655,513],{"class":385},[367,1657,1658],{"class":492},"expected",[367,1660,1050],{"class":385},[367,1662,1601],{"class":492},[367,1664,536],{"class":385},[367,1666,1667],{"class":492},"Object",[367,1669,536],{"class":385},[367,1671,1619],{"class":509},[367,1673,374],{"class":385},[367,1675,1590],{"class":488},[367,1677,1503],{"class":385},[367,1679,1629],{"class":1628},[367,1681,1391],{"class":385},[1131,1683,1037],{"id":1684},"generatedelegates",[293,1686,1687,1688,1691],{},"By default, AutoFixture's own kernel creates delegates. With ",[304,1689,1690],{},"GenerateDelegates = true",", Moq creates them instead — useful when you want mockable or auto-configured delegates:",[358,1693,1695],{"className":479,"code":1694,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization\n{\n    GenerateDelegates = true,\n    ConfigureMembers = true\n});\nvar expected = fixture.Freeze\u003Cstring>();\n\nvar format = fixture.Create\u003CFunc\u003Cint, string>>();\n\nAssert.Equal(expected, format(42));\n",[304,1696,1697,1719,1723,1733,1741,1745,1765,1769,1799,1803],{"__ignoreMap":363},[367,1698,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717],{"class":369,"line":370},[367,1700,489],{"class":488},[367,1702,493],{"class":492},[367,1704,496],{"class":385},[367,1706,499],{"class":488},[367,1708,503],{"class":502},[367,1710,506],{"class":385},[367,1712,510],{"class":509},[367,1714,513],{"class":385},[367,1716,499],{"class":488},[367,1718,1097],{"class":502},[367,1720,1721],{"class":369,"line":404},[367,1722,1102],{"class":385},[367,1724,1725,1727,1729,1731],{"class":369,"line":426},[367,1726,1119],{"class":492},[367,1728,496],{"class":385},[367,1730,1029],{"class":488},[367,1732,1114],{"class":385},[367,1734,1735,1737,1739],{"class":369,"line":558},[367,1736,1107],{"class":492},[367,1738,496],{"class":385},[367,1740,1124],{"class":488},[367,1742,1743],{"class":369,"line":582},[367,1744,1129],{"class":385},[367,1746,1747,1749,1751,1753,1755,1757,1759,1761,1763],{"class":369,"line":587},[367,1748,489],{"class":488},[367,1750,1577],{"class":492},[367,1752,496],{"class":385},[367,1754,533],{"class":492},[367,1756,536],{"class":385},[367,1758,316],{"class":509},[367,1760,374],{"class":385},[367,1762,1506],{"class":488},[367,1764,579],{"class":385},[367,1766,1767],{"class":369,"line":610},[367,1768,555],{"emptyLinePlaceholder":194},[367,1770,1771,1773,1776,1778,1780,1782,1784,1786,1788,1790,1793,1795,1797],{"class":369,"line":629},[367,1772,489],{"class":488},[367,1774,1775],{"class":492}," format",[367,1777,496],{"class":385},[367,1779,533],{"class":492},[367,1781,536],{"class":385},[367,1783,572],{"class":509},[367,1785,374],{"class":385},[367,1787,1049],{"class":502},[367,1789,374],{"class":385},[367,1791,1792],{"class":488},"int",[367,1794,1050],{"class":385},[367,1796,1506],{"class":488},[367,1798,550],{"class":385},[367,1800,1801],{"class":369,"line":634},[367,1802,555],{"emptyLinePlaceholder":194},[367,1804,1806,1808,1810,1812,1814,1816,1818,1821,1823,1826],{"class":369,"line":1805},10,[367,1807,1244],{"class":492},[367,1809,536],{"class":385},[367,1811,1653],{"class":509},[367,1813,513],{"class":385},[367,1815,1658],{"class":492},[367,1817,1050],{"class":385},[367,1819,1820],{"class":509},"format",[367,1822,513],{"class":385},[367,1824,1825],{"class":1387},"42",[367,1827,1391],{"class":385},[293,1829,1830,1831,1833],{},"Without ",[304,1832,1018],{},", the Moq delegate still exists but return values stay at Moq defaults unless you set them up.",[1131,1835,1061],{"id":1836},"relay",[293,1838,1839,1841,1842,1845,1846,1851],{},[304,1840,1061],{}," is the specimen builder added to ",[304,1843,1844],{},"fixture.ResidueCollectors",". The default ",[296,1847,1849],{"href":1848},"\u002Fapi\u002Fautomoq\u002F5-0-0-rc-1\u002Fautofixture.automoq.mockrelay",[304,1850,1066],{}," answers requests for interfaces and abstract types with Moq mocks.",[293,1853,1854,1855,1857],{},"Most tests leave the default. Replace it only when you need a custom residue collector — for example a ",[304,1856,1066],{}," with a different request specification:",[358,1859,1861],{"className":479,"code":1860,"language":481,"meta":363,"style":363},"var fixture = new Fixture().Customize(new AutoMoqCustomization\n{\n    Relay = new MockRelay(new ExactTypeSpecification(typeof(IOrderRepository)))\n});\n",[304,1862,1863,1885,1889,1920],{"__ignoreMap":363},[367,1864,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883],{"class":369,"line":370},[367,1866,489],{"class":488},[367,1868,493],{"class":492},[367,1870,496],{"class":385},[367,1872,499],{"class":488},[367,1874,503],{"class":502},[367,1876,506],{"class":385},[367,1878,510],{"class":509},[367,1880,513],{"class":385},[367,1882,499],{"class":488},[367,1884,1097],{"class":502},[367,1886,1887],{"class":369,"line":404},[367,1888,1102],{"class":385},[367,1890,1891,1894,1896,1898,1901,1903,1905,1908,1910,1913,1915,1917],{"class":369,"line":426},[367,1892,1893],{"class":492},"    Relay",[367,1895,496],{"class":385},[367,1897,499],{"class":488},[367,1899,1900],{"class":502}," MockRelay",[367,1902,513],{"class":385},[367,1904,499],{"class":488},[367,1906,1907],{"class":502}," ExactTypeSpecification",[367,1909,513],{"class":385},[367,1911,1912],{"class":488},"typeof",[367,1914,513],{"class":385},[367,1916,467],{"class":502},[367,1918,1919],{"class":385},")))\n",[367,1921,1922],{"class":369,"line":558},[367,1923,1129],{"class":385},[293,1925,1926,1927,1929],{},"That example would mock only ",[304,1928,467],{}," requests that match the specification you supply; other abstractions follow the rest of the fixture pipeline.",[319,1931,1933],{"id":1932},"how-it-works","How it works",[324,1935,1936,1943,1950,1957,1964,1974],{},[327,1937,1938,1942],{},[311,1939,1940],{},[304,1941,984],{}," — registers Moq mock creation and a residue collector for abstractions",[327,1944,1945,1949],{},[311,1946,1947],{},[304,1948,1018],{}," — auto-setup mock members from the fixture (with known gaps — see above)",[327,1951,1952,1956],{},[311,1953,1954],{},[304,1955,1453],{}," — manual Moq setup that pulls return values from the fixture",[327,1958,1959,1963],{},[311,1960,1961],{},[304,1962,1037],{}," — create delegates with Moq instead of the AutoFixture kernel",[327,1965,1966,1970,1971,1973],{},[311,1967,1968],{},[304,1969,1061],{}," — residue collector (default ",[304,1972,1066],{},") for interface\u002Fabstract requests",[327,1975,1976,1984,1985,1987],{},[311,1977,1978,718,1981],{},[304,1979,1980],{},"Freeze\u003CMock\u003CT>>()",[304,1982,1983],{},"Freeze\u003CT>()"," — one shared mock (or ",[304,1986,804],{},") for setup and verification",[319,1989,1991],{"id":1990},"next-steps","Next steps",[324,1993,1994,1999,2003,2007,2011,2016,2020],{},[327,1995,1996],{},[296,1997,1998],{"href":102},"Integrations overview",[327,2000,2001],{},[296,2002,114],{"href":115},[327,2004,2005],{},[296,2006,122],{"href":123},[327,2008,2009],{},[296,2010,126],{"href":127},[327,2012,2013],{},[296,2014,2015],{"href":695},"Custom AutoData attribute",[327,2017,2018],{},[296,2019,78],{"href":79},[327,2021,2022],{},[296,2023,173],{"href":174},[319,2025,2027],{"id":2026},"api","API",[324,2029,2030,2036,2042,2048],{},[327,2031,2032],{},[296,2033,2035],{"href":2034},"\u002Fapi\u002Fautomoq\u002F5-0-0-rc-1","AutoFixture.AutoMoq package",[327,2037,2038],{},[296,2039,2040],{"href":981},[304,2041,984],{},[327,2043,2044],{},[296,2045,2046],{"href":1848},[304,2047,1066],{},[327,2049,2050],{},[296,2051,2052],{"href":1461},[304,2053,2054],{},"MockType.ReturnsUsingFixture",[2056,2057,2058],"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 .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 .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 .s-S-M, html code.shiki .s-S-M{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#B5CEA8}html pre.shiki code .sFD8J, html code.shiki .sFD8J{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#CE9178}",{"title":363,"searchDepth":404,"depth":404,"links":2060},[2061,2062,2063,2064,2065,2066,2072,2073,2074],{"id":321,"depth":404,"text":322},{"id":339,"depth":404,"text":340},{"id":456,"depth":404,"text":457},{"id":475,"depth":404,"text":476},{"id":703,"depth":404,"text":704},{"id":975,"depth":404,"text":976,"children":2067},[2068,2069,2070,2071],{"id":1133,"depth":426,"text":1018},{"id":1456,"depth":426,"text":1453},{"id":1684,"depth":426,"text":1037},{"id":1836,"depth":426,"text":1061},{"id":1932,"depth":404,"text":1933},{"id":1990,"depth":404,"text":1991},{"id":2026,"depth":404,"text":2027},"Moq integration — let AutoFixture create Moq mocks for interfaces and abstract types automatically.","md",{},{"title":114,"description":2075},"p_yOfP9Aulb-YB4gObReC9l69izSiMoYogttg_1LoC0",[2081,2082],{"title":110,"path":111,"stem":112,"children":-1},{"title":118,"path":119,"stem":120,"children":-1},1788856648909]