#什麼是Code Snippet
從字面來看是程式碼片段,如果已經寫程式一段時間應該都有用到過,例如在Visual Studio打上Switch後按兩下Tab自動產生的程式碼就是Code Snippet功能做出來的。
所以將常常重複寫的程式碼做成Code Snippet是一件很方便的事情
#如何自訂
因為寫單元測試常常需要寫3A原則,所以把它做成Code Snippet就可以重用。
1 2 3 4 5 6 7 8
| var sut = GetSystemUnderTest(); var expected = true;
var actual = sut.DoSomething();
|
建立3A Pattern.snippet的檔案
打開一個記事本命名成3A Pattern,然後副檔名儲存成.snippet
撰寫內容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> <Title>你的Code Snippet名稱</Title> <Author>Steven</Author> <Description> </Description> <HelpUrl> </HelpUrl> <Shortcut>你想要呼叫時的代碼</Shortcut> </Header> <Snippet> <Declarations> <Literal Editable="true"> <ID>變數ID</ID> <ToolTip>變數描述</ToolTip> <Default>預設值</Default> <Function> </Function> </Literal> </Declarations> <Code Language="csharp" Delimiter="$"><![CDATA[ ...... 放入程式碼的地方 ...... ]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
依據上面的Template,將3A Pattern Code Snippet改成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> <Title>3A Pattern</Title> <Author>Steven</Author> <Description> </Description> <HelpUrl> </HelpUrl> <Shortcut>aaa</Shortcut> </Header> <Snippet> <Declarations> <Literal Editable="true"> <ID>expected</ID> <ToolTip>expected</ToolTip> <Default>true</Default> <Function> </Function> </Literal> <Literal Editable="true"> <ID>DoSomthing</ID> <ToolTip>DoSomthing</ToolTip> <Default>DoSomething()</Default> <Function> </Function> </Literal> </Declarations> <Code Language="csharp" Delimiter="$"><![CDATA[ //// arrange var sut = GetSystemUnderTest(); var expected = $expected$; //// act var actual = sut.$DoSomthing$; //// assert ]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
|
$變數$ , 兩個前字號中間的就是變數ID,在Snippet > Declarations > Literal 設定變數相關值
#匯入Visual Studio
最後一步就是匯入Visual Studio中,點擊工具 > 程式碼片段管理員
點擊匯入,選擇剛剛的3A Pattern.snippet檔案
匯入到My Code Snippets > 完成 ,就可以看到3A Pattern了
#結果
在程式碼中打aaa加兩次Tab就會呼叫出我們設定的Code Snippet