Resharper Moq的快速模板?

Resharper Moq的快速模板?,resharper,moq,template-engine,Resharper,Moq,Template Engine,手工进行许多Moq的Setup()调用以模拟整个接口方法集是非常常规的。我想找到一种方法,用虚拟的回答预先填充嘲弄的表达 有没有办法做到这一点?如果相关的话,我会使用ReSharper。如果您使用的是Visual Studio,您可以创建一个代码段,例如: Mock<Interface> mock = new Mock<Interface>(); mock.Setup(x => x.MyMethod(params)).Return(return); 莫克 然后,当

手工进行许多Moq的Setup()调用以模拟整个接口方法集是非常常规的。我想找到一种方法,用虚拟的回答预先填充嘲弄的表达


有没有办法做到这一点?如果相关的话,我会使用ReSharper。

如果您使用的是Visual Studio,您可以创建一个代码段,例如:

Mock<Interface> mock = new Mock<Interface>();
mock.Setup(x => x.MyMethod(params)).Return(return);
莫克

然后,当您使用您的moqq+TAB+TAB时,它将显示如下内容:

Mock<Interface> mock = new Mock<Interface>();
mock.Setup(x => x.MyMethod(params)).Return(return);
Mock Mock=new Mock();
mock.Setup(x=>x.MyMethod(params)).Return(Return);
你只需要写moqq就可以完成所有这些

即使您可以在代码片段中添加一些“点”,当您再次点击TAB时,您也可以将例如从接口传递到MyMethod。这样,您甚至不需要触摸鼠标就可以更改所有变量名;)

遵循以下步骤:

使用基于以下内容的Resharper“实时模板”:

Mock Mock$interfaceToMock$=new Mock();
mock$interfaceToMock$.Setup(x=>x.$expectedMethod$)。返回($returnValue$);
包含宏etc的整个Resharper DotSettings内容(基于R#2020.3):


真的
莫克
最小起订量模拟
Mock$interfaceToMock$Mock$interfaceToMock$=新Mock$interfaceToMock$()&#除息的;mock$interfaceToMock$.Setup(x=x.$expectedMethod$)。返回($returnValue$);
真的
真的
测验
真的
真的
印加锉刀
2
真的
猜测ExpectedType(“”)
2.
0
真的
1.
真的
2.

<wpf:ResourceDictionary xml:space="preserve"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:s="clr-namespace:System;assembly=mscorlib"
                        xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml"
                        xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Shortcut/@EntryValue">moqq</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Description/@EntryValue">Moq mock</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Text/@EntryValue">Mock&lt;$interfaceToMock$&gt; mock$interfaceToMock$ = new Mock&lt;$interfaceToMock$&gt;();&#xD; mock$interfaceToMock$.Setup(x =&gt; x.$expectedMethod$).Returns($returnValue$);</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Reformat/@EntryValue">True</s:Boolean>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/ShortenQualifiedReferences/@EntryValue">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Categories/=Tests/@EntryIndexedValue">Tests</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Applicability/=Live/@EntryIndexedValue">True</s:Boolean>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Scope/=C3001E7C0DA78E4487072B7E050D86C5/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Scope/=C3001E7C0DA78E4487072B7E050D86C5/Type/@EntryValue">InCSharpFile</s:String>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Scope/=C3001E7C0DA78E4487072B7E050D86C5/CustomProperties/=minimumLanguageVersion/@EntryIndexedValue">2.0</s:String>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=interfaceToMock/@KeyIndexDefined">True</s:Boolean>
    <s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=interfaceToMock/Expression/@EntryValue">guessExpectedType("")</s:String>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=interfaceToMock/InitialRange/@EntryValue">2</s:Int64>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=interfaceToMock/Order/@EntryValue">0</s:Int64>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=expectedMethod/@KeyIndexDefined">True</s:Boolean>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=expectedMethod/Order/@EntryValue">1</s:Int64>
    <s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=returnValue/@KeyIndexDefined">True</s:Boolean>
    <s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=E53EF07BEAF6964C83AD78E1B75E3837/Field/=returnValue/Order/@EntryValue">2</s:Int64>
</wpf:ResourceDictionary>