|
使用 Visual Studio 對(duì)公共方法進(jìn)行單元測(cè)試,跟以前 NUnit 一樣,都是引用需要的類,然后對(duì)公共方法進(jìn)行測(cè)試。
但是 Visual Studio 還可以對(duì)類的私有方法進(jìn)行測(cè)試。而Visual Studio 不允許測(cè)試代碼跟實(shí)際代碼放在一個(gè)項(xiàng)目中,我們來看看是Visual Studio UnitTest如何做的。 比如我們有這樣一個(gè)私有方法
我們只要在這個(gè)私有方法的右鍵菜單中選擇 創(chuàng)建單元測(cè)試,系統(tǒng)就自動(dòng)產(chǎn)生了這個(gè)私有方法的單元測(cè)試代碼。 下面我們來分析產(chǎn)生的單元測(cè)試代碼,看Visual Studio UnitTest 是如何對(duì)私有方法進(jìn)行單元測(cè)試的 簡單來說,Visual Studio UnitTest 生成私有方法的單元測(cè)試時(shí),將自動(dòng)創(chuàng)建一個(gè)私有訪問器。私有訪問器是測(cè)試方法用于訪問私有代碼的方法。單元測(cè)試生成對(duì)私有訪問器的調(diào)用,然后通過私有訪問器來調(diào)用私有方法。私有訪問器駐留在測(cè)試項(xiàng)目中的文件中;因此將被編譯為測(cè)試項(xiàng)目程序集。 具體來看測(cè)試項(xiàng)目: 首先我們可以看到一個(gè)名為 VSCodeGenAccessors.cs 的新文件被創(chuàng)建, 這個(gè)文件包含兩個(gè)類: internal 類型的 BaseAccessor 類 和 派生自它的 ClassLibrary1_DivisionClassAccessor 類 BaseAccessor 類 是通用的訪問器基類。 ClassLibrary1_DivisionClassAccessor 類 則是對(duì)你要訪問類的私有方法進(jìn)行了反射封裝,這樣你就可以通過操作這個(gè)類來操作該私有方法了。如下面代碼: |
|
|