日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET 程序集单元测试工具 SmokeTest 应用指南

發布時間:2023/12/4 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET 程序集单元测试工具 SmokeTest 应用指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Smoke Test(冒煙測試),也稱Regression Test(回歸測試),是對軟件的安裝和基本功能的測試。一般地我們使用腳本來實現Smoke Test的自動化,可借用虛擬機的snapshot機制來保證干凈的環境來進行Smoke Test,然后將測試好的程序集成到Continous build或daily build中。?
冒煙測試是指一種基本功能測試,是從硬件測試借鑒過來的。進行硬件測試時,首先需要給硬件加電,如果一加電電路燒了冒煙,后續的測試當然進行不去了,也就是能加電是后面測試的前提條件。借鑒到軟件中來就是只有軟件的基本功能正確的情況下,后續的開發和測試才能進行。冒煙測試一般和每日構建一起實施。

今天要向讀者推薦的工具名稱叫SmokeTest,是.NET領域中一個程序集測試工具,是以程序集為單元的測試工具。

官方對SmokeTest的介紹如下:

SmokeTest lets you invoke any member of a class interactively. An indispensable tool for anyone involved in developing, testing, and managing Windows .NET projects.

地址如下:http://smoketest.wesleysteiner.com/

SmokeTest可以讓我們測試一個程序集中的方法,而不用寫任何代碼。使用這個工具,我們可以創建對象的實體(調用構造方法),調用方法,獲取或設置屬性,并操作調用的結果。

? Create an instance of any Class? 創建對象實體(調用構造方法)?
? Call any Method 調用方法?
? Get and set any Property? 獲取屬性值或設置屬性值?
? Read and write any Field? 讀取或設置字段值?
? Create and edit object instances to pass as arguments 創建并編輯對象實體,并將它傳遞到方法的參數中?
? Drill-down and smoke-test the returned result 鉆取返回結果集

一個可測試的類型(smoke-testable)必須是值類型(ValueType)或引用類型(class),不支持泛型類或接口的測試。

1 測試.NET DateTime 類型方法和屬性

在左邊的樹型結構中,瀏覽到mscrolib的System命名空間下點擊DateTime結點,點擊Properties中的DateTime.Now

看到右下的黃色窗體輸出系統的當前時間。

再轉到Methods方法選項卡中測試IsLeapYear,輸入參數2016,點Call按鈕后看到右下腳結果窗體中輸出true。

2 測試無返回值方法

public static void Add() { Console.WriteLine("Test"); }

輸出窗體返回(null),表示無返回值。

3 測試兩個整數相加的方法

public static int Add(int a, int b) { return a + b; }

我們在參數欄中輸入參數1,2,看到輸出窗體返回結果3。

4 方法的參數是對象類型

public static int ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText) { //pass through the call providing null for the set of SqlParameters return ExecuteNonQuery(connection, commandType, commandText, (SqlParameter[])null); }

我們的第一個參數是SqlConnection對象,第二個參數是枚舉類型。當選擇此方法之后,參數窗體中如下所示。

點擊第一個參數SqlConnection后面的按鈕,打開窗體選擇有參數的構造方法,填寫連接字符串信息點擊Create按鈕

關閉此窗體,回到主窗體,再輸入comandText參數表示的SQL語句

SELECT COMPANY_NAME FROM dbo.GBPARM

點Call按鈕后看到結果輸出窗體顯示數據庫中的返回值。

從這一步中看到,SmokeTest具備參數實例化能力,它可以向參數傳遞值來創建參數的實例,從而完成被測試方法的參數值傳遞。

5 方法的返回結果是集合類型或對象類型

public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText) { //pass through the call providing null for the set of SqlParameters return ExecuteDataset(connection, commandType, commandText, (SqlParameter[])null); }

這個方法的返回類型是DataSet,執行之后結果輸出窗口顯示

點擊右邊的DataSet按鈕,我們可以對ExecuteDataSet方法的返回值進行操作。按照下圖中的字母順序,依次點擊,可可觀察到3號窗體(中間窗體)返回結果為1,這正是調用上面的SQL語句返回的數據集DataSet的Table的數量。

如果DataSet按鈕可以以可視化的方式(DataGridView控件)顯示數據就更完善了。

6 重復N次調用測試方式

注意上面的Call按鈕后面有個x 1下拉選項,里面1-1000000選項。默認點x1表示調用測試方法一次,如果選擇其它數值,則可以調用測試方式N次。目前有以下幾個選項值:

在下面的下拉框中會記錄每次調用的調用耗費的時間,調用次序。

7 .NET Reflector 插件

SmokeTest的作者還為它設計了.NET Reflector插件,借助于.NET Reflector設計精良的程序集瀏覽能力,邊查看源代碼,邊測試方法。

插件下載地址:http://smoketest.wesleysteiner.com/smoketest_raddin_1_0.zip

8 NUnit, MS Test ,TestDriven.NET,SmokeTest

前二種需要編寫程序代碼,是.NET單元測試領域的主要工具。

//NUnit [TestFixture] public class UserTest { [Test] public void LoginTest() { User user = SessionManaer.Login("admin","cnblogs"); Assert.IsTrue(user!=null); } } //MSTest [TestClass] public class UserTest { [TestMethod] public void LoginTest() { User user = SessionManaer.Login("admin","cnblogs"); Assert.IsTrue(user!=null); } }

TestDriven.NET是建立在NUnit或MSTest技術基礎上的一個擴展工具,支持在任何方法、類、源文件、命名空間、工程中直接單擊即可運行測試。

注意TestDriven.NET測試的方法不一定需要Test或TestMethod特性(attribute),您只需要在一個方法內部點擊Test按鈕,即可完成代碼的測試。

SmokeTest則是以.NET程序集為基礎的代碼測試工具,使用SmokeTest不需要寫代碼,只需要借助于它的參數生成工具,填寫參數值即可執行靜態方法或屬性的測試。

原文地址:http://www.cnblogs.com/JamesLi2015/p/5544629.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注


總結

以上是生活随笔為你收集整理的.NET 程序集单元测试工具 SmokeTest 应用指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。