手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

NUnit学习笔记 Delphi 2006篇

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

    Type t = new string("").GetType();
    string s = "";
    Assert.IsAssignableFrom(t, s);
  7.IsFalse()和IsTrue()方法,用来查看变量是是否为false或true,如果IsFalse()查看的变量的值是false则测试成功,如果是true则失败,IsTrue()与之相反。
  8.IsNull()和IsNotNull()方法,用来查看对象是否为空和不为空。
  9.IsEmpty()和IsNotEmpty()方法,用来判断字符串或集合是否为空串或没有元素,其中集合类型应与ICollection兼容。
  10.IsNaN()方法,用来判断指定的值是否不是数字。
  11.Fail()方法,意为失败,用来抛出错误。我个人认为有两个用途:首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写,而写成时又不清楚其正确与否,此时就可以使用Fail方法抛出错误进行模拟;其次是抛出意外的错误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连接失败。
  12.Ignore()方法,意为忽略,用来忽略后续代码的执行,用途可以参考Fail()方法。
  此外,NUnit还提供了一个专用于字符串的静态类NUnit.Framework. StringAssert,该类主要包含4个方法:
  1.Contains()方法,用来查看指定的第二个字符串中是否包含了第一个字符串。
  2.StartsWith ()和EndsWith ()方法,分别用来查看指定的第一个字符串是否位于第二个字符串的开头和结尾。
  3.AreEqualIgnoringCase()方法,用来比较两个字符串是否相等。
  下面再看一下Delphi代码:
  unit BookTest;

  interface

  uses
    Book,
    NUnit.Framework;

  type
    [TestFixture]
    TBookTest = class
      book : TBook;
    private
      { Private Declarations }
    public
      constructor Create;
      [TestFixtureSetUp]
      procedure Init();
      [Test]
      procedure testId();
      [Test]
      procedure testName();
      [TestFixtureTearDown]
      procedure Dispose();
  end;

  implementation

  constructor TBookTest.Create();
  begin
    inherited Create;
  end;

  procedure TBookTest.Init();
  begin
    onsole.WriteLine(''''测试开始!'''');
    book := TBook.Create();
    Console.WriteLine(''''book对象被初始化!'''');
  end;

  procedure TBookTest.testId();
  begin
    book.id := ''''001''''; //设置id属性的值为001
    //使用Assert查看id属性的值是否为001
    Assert.AreEqual(''''001'''', book.id);
    Console.WriteLine(''''id属性被测试!'''');
  end;

  procedure TBookTest.testName();
  begin
    book.name := ''''ASP''''; //设置name属性的值为ASP
    //使用Assert查看name属性的值是否为JSP,这是个必然出现错误的测试
    Assert.AreEqual(''''JSP'''', book.name);
    Console.WriteLine(''''name属性被测试!'''');
  end;

  procedure TBookTest.Dispose();
  begin
    Console.WriteLine(''''book对象将被清理!'''');
    book := nil;
    Console.WriteLine(''''测试结束!'''');
  end;

end.
也是固定格式,没什么好说的吧?改好后,点击菜单“Run”->“Run”或按F9键运行程序。等等,main函数里头好象一句代码也没写过呢吧?没错,一句也没写,但如果你用的是C#照做就可以了,如果用的是Delphi,那么请把NUnitOP.bdsproj文件打开。我们需要对该文件进行修改,否则程序虽能生成,但却无法用于测试。什么,没有这个文件?按Ctrl F12,在打开的“View Unit”对话框中选择NUnitOP一项,然后点击“OK”。在文件中修改代码如下:
  program NUnitOP;

  {$APPTYPE CONSOLE}

  {辧phiDotNetAssemblyCompiler ''''e:\program files\nunit 2.2\bin\nunit.framework.dll''''}
  {辧phiDotNetAssemblyCompiler ''''$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.dll''''}
  {辧phiDotNetAssemblyCompiler ''''$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll''''}
  {辧phiDotNetAssemblyCompiler ''''$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll''''}

  uses
    SysUtils,
    Book in ''''Book.pas'''',
    BookTest in ''''BookTest.pas'''';

  var
    bt : TBookTest;
  begin
    bt := TBookTest.Create();
  end.
修改好后,按F9键运行程序。在看到黑屏一闪之后,编码工作完成。
五、运行NUnit
  编码完成后,就可以使用NUnit测试了。NUnit有两种界面,一种是命令行的,一种是可视化的,我使用的就是后者。点击“开始”菜单->“所有程序”->“NUnit 2.2.6”->“NUnit-Gui”,打开NUnit的可视化界面:

点击菜单“File”->“Open”,打开刚才运行之后生成的可执行文件:

此时就可以使用BookTest类对Book类进行测试了。请首先选择testId,点击“Run”按钮,运行结果如下图:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!