{"id":1498,"date":"2020-04-09T10:00:03","date_gmt":"2020-04-09T08:00:03","guid":{"rendered":"http:\/\/tpodolak.com\/blog\/?p=1498"},"modified":"2020-04-12T19:34:07","modified_gmt":"2020-04-12T17:34:07","slug":"introduce-substitute-refactoring-comes-nsubstitute-analyzers","status":"publish","type":"post","link":"https:\/\/tpodolak.com\/blog\/2020\/04\/09\/introduce-substitute-refactoring-comes-nsubstitute-analyzers\/","title":{"rendered":"Introduce substitute refactoring comes to NSubstitute.Analyzers"},"content":{"rendered":"<p>I am glad to announce the newest version of <a href=\"https:\/\/www.nuget.org\/packages\/NSubstitute.Analyzers.CSharp\/1.0.13\">NSubstitute.Analyzers<\/a> comes with &#8220;introduce substitute&#8221; refactoring, which allows you to automatically create substitutes for constructor arguments as fields or local variables. As an image is worth a thousand words here is a quick demo of C# version<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/7378346\/77374918-54832d80-6d6c-11ea-965a-eb96080bf8cd.gif\" alt=\"\" width=\"1089\" height=\"560\" class=\"alignnone size-full wp-image-1390\" \/><br \/>\nand VisualBasic one<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/7378346\/77374922-564cf100-6d6c-11ea-8fca-96d8a9724b36.gif\" alt=\"\" width=\"1089\" height=\"560\" class=\"alignnone size-full wp-image-1390\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am glad to announce the newest version of NSubstitute.Analyzers comes with &#8220;introduce substitute&#8221; refactoring, which allows you to automatically create substitutes for constructor arguments as fields or local variables. As an image is worth a thousand words here is a quick demo of C# version and VisualBasic one<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[326],"tags":[335],"class_list":["post-1498","post","type-post","status-publish","format-standard","hentry","category-nsubstitute","tag-nsubstitute-analyzers"],"_links":{"self":[{"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/posts\/1498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/comments?post=1498"}],"version-history":[{"count":6,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/posts\/1498\/revisions"}],"predecessor-version":[{"id":1504,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/posts\/1498\/revisions\/1504"}],"wp:attachment":[{"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/media?parent=1498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/categories?post=1498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tpodolak.com\/blog\/wp-json\/wp\/v2\/tags?post=1498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}