{"id":170240,"date":"2009-03-19T12:54:06","date_gmt":"2009-03-19T19:54:06","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/project\/stubs-lightweight-test-stubs-for-net\/"},"modified":"2017-06-19T10:31:42","modified_gmt":"2017-06-19T17:31:42","slug":"stubs-lightweight-test-stubs-for-net","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/stubs-lightweight-test-stubs-for-net\/","title":{"rendered":"Stubs &#8211; Lightweight Test Stubs for .NET"},"content":{"rendered":"<p class=\"asset-content\">Stubs is a lightweight framework for .NET that provides test stubs. For interfaces and non-sealed classes, type-safe wrappers are generated that can be easily customized by attaching delegates. Stubs are part of Moles, and work well together with Pex.<\/p>\n<p class=\"asset-content\"><strong>Stubs\u00a0<\/strong>is a lightweight framework for<strong> test stubs in .NET<\/strong> that is entirely based on delegates.\u00a0Stubs may be used on interfaces, abstract classes or non-sealed classes. Stubs was designed provide a minimal overhead to the <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/pex\">Pex <\/a>white box analysis, and Stubs supports the <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/code-contracts\/\">Code Contracts <\/a>runtime rewriter and encourage the programmatic models rather than record\/replay tests.<\/p>\n<ul>\n<li class=\"asset-content\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.peterprovost.org\/blog\/2012\/04\/15\/visual-studio-11-fakes-part-1\/\">Read the blog post from Peter Provost about Stubs<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/li>\n<\/ul>\n<p><span id=\"3e1da3ce-d824-4b8b-85d8-5daf42b92010\" class=\"ImageBlock fn\"><a href=\"\/en-us\/projects\/pex\/downloads.aspx\" target=\"_self\"><img decoding=\"async\" id=\"Image3e1da3ce-d824-4b8b-85d8-5daf42b92010\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/stubs-n_downloads.gif\" alt=\"\" \/><\/a><\/span><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/pex-and-moles-isolation-and-white-box-unit-testing-for-net\/\"><strong>Download Stubs<\/strong><\/a>! It&#8217;s part of the <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/moles-isolation-framework-for-net\/\">Moles<\/a>\u00a0framework.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stubs is a lightweight framework for .NET that provides test stubs. For interfaces and non-sealed classes, type-safe wrappers are generated that can be easily customized by attaching delegates. Stubs are part of Moles, and work well together with Pex. Stubs\u00a0is a lightweight framework for test stubs in .NET that is entirely based on delegates.\u00a0Stubs may [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"research-area":[13560],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-170240","msr-project","type-msr-project","status-publish","hentry","msr-research-area-programming-languages-software-engineering","msr-locale-en_us","msr-archive-status-active"],"msr_project_start":"2009-03-19","related-publications":[],"related-downloads":[],"related-videos":[],"related-groups":[],"related-events":[],"related-opportunities":[],"related-posts":[],"related-articles":[],"tab-content":[],"slides":[],"related-researchers":[{"type":"user_nicename","value":"jhalleux","display_name":"Peli de Halleux","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/jhalleux\/\" aria-label=\"Visit the profile page for Peli de Halleux\">Peli de Halleux<\/a>","is_active":false,"user_id":32253,"last_first":"de Halleux, Peli","people_section":0,"alias":"jhalleux"},{"type":"user_nicename","value":"nbjorner","display_name":"Nikolaj Bj\u00f8rner","author_link":"<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nbjorner\/\" aria-label=\"Visit the profile page for Nikolaj Bj\u00f8rner\">Nikolaj Bj\u00f8rner<\/a>","is_active":false,"user_id":33067,"last_first":"Bj\u00f8rner, Nikolaj","people_section":0,"alias":"nbjorner"}],"msr_research_lab":[199565],"msr_impact_theme":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-project"}],"version-history":[{"count":2,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170240\/revisions"}],"predecessor-version":[{"id":391502,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170240\/revisions\/391502"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=170240"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=170240"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=170240"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=170240"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=170240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}