zoukankan      html  css  js  c++  java
  • Mono 之 单元测试

      在上一篇文章中,利用Mono运行时,将两个简单的控制台程序部署在了Linux上,并且顺利运行。在敏捷的时代,测试是必不可少的,接下来让我们看看Mono上的单元测试方案。

    NUnit

      测试最好能够在Linux平台下运行,也就是需要MonoDevloper的支持。Vs2010自带的单元测试框架是不能用了,替代方案之一就是大家众所周知的——NUnit。Mono支持Nunit的运行,在MonoDeveloper中也有对应的Nunit项目模板。

        关于NUnit的简单使用:

      NUnit使用Attribute来标记测试的用例:

    Nunit中的attribute
    TestFixture 标识单元测试类
    Test 标识测试方法
    TestFixtureSetup 测试类的初始化方法
    TestFixtureTearDown 释放初始化方法的资源
    Setup 测试用例的初始化函数  
    TearDown 测试用例的资源释放

    在VS 2010 中配置NUnit

      在Vs2010 的“扩展管理器”中联机搜索 “Visual NUnit 2010”插件, 这是一个NUnit的运行器。

    安装好后在 “视图”-》“其他窗口” 可以打开该插件的界面(也可以直接按 Ctrl+F7)

       我们继续以上一篇中的GeneratePrimes为例。在解决方案里新建一个类库项目,加入以下单元测试代码:

    TestCase
     1   [TestFixture]
     2     public class GeneratePrimesTest
     3     {
     4 
     5 
     6       
     7 
     8         [Test]
     9         public void TestNullPrimes()
    10         {
    11             int[] nullArray = GeneratePrimes.PrimeGenerator.GeneratePrimeNumbers(0);
    12             Assert.AreEqual(nullArray.Length, 0);
    13         }
    14 
    15         [Test]
    16         public void TestMinPrimes()
    17         {
    18             int[] minArray = GeneratePrimes.PrimeGenerator.GeneratePrimeNumbers(2);
    19             Assert.AreEqual(minArray.Length, 1);
    20             Assert.AreEqual(minArray[0], 2);
    21         }
    22 
    23         [Test]
    24         public void TestThreePrimes()
    25         {
    26             int[] threeArray = GeneratePrimes.PrimeGenerator.GeneratePrimeNumbers(3);
    27             Assert.AreEqual(threeArray.Length, 2);
    28             Assert.AreEqual(threeArray[0], 2);
    29             Assert.AreEqual(threeArray[1], 3);
    30         }
    31 
    32         [Test]
    33         public void TestCentPrimes()
    34         {
    35             int[] centArray = GeneratePrimes.PrimeGenerator.GeneratePrimeNumbers(100);
    36             Assert.AreEqual(centArray.Length, 25);
    37             Assert.AreEqual(centArray[24], 97);
    38         }
    39 
    40 
    41 
    42 
    43     }

      因为使用NUnit项目所以我们还需要添加对其的引用。

    在NuGet的包控制台中 输入PM> Install-Package NUnit  就可以添加引用(很方便吧!记得修改“默认项目” );

    重新生成解决方案,然后 在Visual NUnit 中选择项目,点击RUN 就可以查看运行结果了。

    将解决方案转移到MonoDevelop

      将解决方案拷贝到Linux操作系统中(我这里使用的是Ubuntu 发行版),在MonoDevelop 中打开项目。

    首先查看一下MonoDevelop中是否安装NUnitRunner。 在“帮助”菜单中选择“关于”-》“版本信息”。

    如果没有需要在Ubuntu的软件中心,MonoDevelop 的附加组件里 “勾选” 然后更新组件即可。

    选择单元测试项目, 将工具栏里的 Active Layout 修改为  unit Testing

    右击单元测试项目 选择Run Item就可以看到测试结果了。

    以上仅是简单的介绍了在Visual 下进行单元测试的一种,当然还有其他很多方法可以实现目的。

  • 相关阅读:
    Jenkins发布Java项目
    自动发布项目(支持部署,回退功能)
    Gitlab Server
    1一站式管理所有SpringBoot启动类,Services服务窗口
    Navicat 连接MySQL8.0.23 出现2059错误
    2命令模式
    1模板方法模式
    7享元模式
    6外观模式
    5桥梁模式
  • 原文地址:https://www.cnblogs.com/keyindex/p/2526952.html
Copyright © 2011-2022 走看看