• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • .NET Compact Framework下的單元測試

    發表于:2009-05-21來源:作者:點擊數: 標簽:單元frameworkFrameworkCompactNet
    本篇將講述.NET Compact Framework下的 單元測試 。在.NET Compact Framework下可以使用NUintLite進行單元測試。 NUintLite是簡化版的NUnit,可以應用于.NET Compact Framework,Mono等平臺。 生成NUnitLite庫 NUintLite已經從codeplex遷移到launchpad.net/nun
    本篇將講述.NET Compact Framework下的單元測試。在.NET Compact Framework下可以使用NUintLite進行單元測試。

      NUintLite是簡化版的NUnit,可以應用于.NET Compact Framework,Mono等平臺。

      生成NUnitLite庫

      NUintLite已經從codeplex遷移到launchpad.net/nunitlite,但是一直沒有release,所以本文使用最后的elease版本 NUnitLite-0.2.0.zip,下載地址為http://nunitlite.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=6568

      解壓源代碼,打開src\NUnitLiteCF目錄下的項目文件,編譯生成NUnitLite.dll。

      使用NUnitLite

      在使用NUnitLite的項目中添加對NUnitLite.dll的引用。在Main函數加入Test Runner

    static void Main(string[] args)

    {

                System.IO.TextWriter writer
    = new System.IO.StreamWriter("\\Test\\TestResult.txt");

                new NUnitLite.Runner.TextUI(writer).
    Execute(args);

                writer.
    Close();

    }

            NUnitLite的Test Runner支持不同的輸出,TextUI輸出到文件,ConsoleUI輸出到控制臺(Console),DebugUI輸出Debug信息,新版本還支持TcpUI把結果輸出通過TCP發送。

      下面以SqlCeHelper的單元測試作為例子。原文可見 .NET Compact Framework下SQL CE的使用

    using NUnit.Framework;

        
    [TestFixture]

        class SqlCeHelperTest

        {

            private SqlCeHelper sqlCe
    = new SqlCeHelper();

            
    [SetUp]

            
    public void SetUp()

            {

                sqlCe.
    Open();

            }

            
    [TearDown]

            
    public void TearDown()

            {

                sqlCe.
    Close();

            }

            
    [Test]

            
    public void Test()

            {

            }

        }

    編寫測試案例(Test Cases)必須定義Test Fixture,在NUnitLite里使用屬性[TestFixture]標識該類為Test Fixture。具體的測試就是該類的方法(Methods)。NUnitLite支持SetUp和TearDown,SetUp在執行測試案例之前先執行,用于初始化和分配資源,可以通過屬性[SetUp]指定SetUp方法;TearDown在執行完測試案例后執行,用于釋放相應的資源,可以使用屬性[TearDown]指定TearDown方法。屬性[Test]用于定義需要執行的測試案例,Test Runner會執行Test Fixture下所有的[Test]方法。

      下面為測試案例的編寫,也就是[Test]方法。

     [Test]

      
    public void ExecuteNonQueryTest()

      {

      
    int i = sqlCe.ExecuteNonQuery("delete from t");

      Assert.That(i,
    Is.GreaterThan(-1));

      i
    = sqlCe.ExecuteNonQuery("insert into t (f1, f2) values (1, 'abc')");

      Assert.That(i,
    Is.GreaterThan(-1));

      i
    = sqlCe.ExecuteNonQuery("update t set f2 = 'xyz' where f1 = 1");

      Assert.That(i,
    Is.GreaterThan(-1));

      }

      
    [Test]

      
    public void ExecuteReaderTest()

      {

      SqlCeDataReader reader
    = sqlCe.ExecuteReader("select * from t");

      Assert.NotNull(reader);

      Assert.True(!reader.IsClosed);

      
    while (reader.Read())

      {

      Assert.That(
    Is.Equals(reader["f2"], "abc"));

      }

      reader.
    Close();

      }

      
    [Test]

      
    public void ExecuteDataSetTest()

      {

      DataSet ds
    = sqlCe.ExecuteDataSet("select * from t");

      foreach (DataRow dr
    in ds.Tables[0].Rows)

      {

      Assert.That(dr
    ["f2"], Is.EqualTo("xyz"));

      }

      }

      
    [Test]

      
    [ExpectedException(typeof(ApplicationException))]

      
    public void ThrowsException()

      {

      throw new ApplicationException("an application exception");

      }

           在 NUnitLite中進行檢驗值還是使用Assert,但是不能使用NUnit下的AreEquels等判斷方法,需要使用Assert.That和Is 類組合完成AreEquels等判斷函數的功能。同時NUnitLite還是支持異常的捕捉(ExpectedException)。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>