Mono 之 单元测试

时间:2021-01-31 04:12:10

  在上一篇文章中,利用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的运行器。

Mono 之 单元测试

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

Mono 之 单元测试

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

Mono 之 单元测试Mono 之 单元测试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 中打开项目。

Mono 之 单元测试

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

Mono 之 单元测试

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

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

Mono 之 单元测试

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

Mono 之 单元测试

 

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