首页 > 编程语言 >用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown

用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown

时间:2023-03-22 10:03:38浏览次数:42  
标签:NUnit Console TearDown void result 测试 public 测试方法


在前面的入门中,每个测试类运行良好。但是大家有没有发现代码的重复性太多了。

每一个测试类中都是先新建一个 Calculate

有没有方法可以设置得简单些呢?有!NUnit 中有一个属性可以完成这个任务。

[SetUp]


被这个属性修饰的方法会在每个测试方法运行前都执行一遍。

[SetUp]
public void init()
{
Console.WriteLine("init");
}

我们运行 NUnit  看看效果吧。在Console.Out栏里打出了四个init

​​用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown_测试​​

 

下面我们可以改进一下之前的测试方法的写法了。

namespace NunitTest
{
[TestFixture]
public class CalculateTest
{
private int a;
private int b;

private Calculate cal;

[SetUp]
public void init()
{
a = 10;
b = 2;
cal = new Calculate();
Console.WriteLine("init");
}

[Test]
public void TestAdd()
{
int result = cal.Add(a, b);

Assert.AreEqual(12, result);
}

[Test]
//[ExpectedException(typeof(DivideByZeroException))]
public void TestDivide()
{
int result = cal.Divide(a, b);

Assert.AreEqual(5, result);
}

[Test]
public void TestMinus()
{
int result = cal.Minus(a, b);

Assert.AreEqual(8, result);
}

[Test]
public void TestMultiply()
{
int result = cal.Multiply(a, b);

Assert.AreEqual(20, result);
}
}
}


怎么样简洁多了吧。运行NUnit,测试通过。!!!

一般[SetUp]用来进行一些数据的初始化等操作,他在每个测试方法执行之前执行。

与此对应的还有一个属性,在每个测试方法执行之后执行,用于回收等一些操作,他就是

[TearDown]

我们在测试方法中添加一个试试效果吧:

[TearDown]
public void Destory()
{
Console.WriteLine("Destory !!!");
}

运行NUnit,

​​用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown_测试_02​​


上面两个方法属性,分别是在每个测试方法的前后执行,也就是说这个测试类中有多少个测试方法他们就要执行多少次了。

那么在测试中有这么一种情况,如果我们要测试数据库,用上面的两个属性我们可以完成这个测试任务。首先在SetUp中初始化数据库连接,然后在TearDown中释放连接。这样虽然可行,但是如果每个测试方法运行时连接一次数据库,然后释放,然后在连接,在释放。如果次数少还好,如果次数很多,数据库连接又是远程的话,那么这样是很浪费时间的了。

NUnit还为我们提供了下面两个属性:

[TestFixtureSetUp]
public void TestFixtureSetUp()
{
Console.WriteLine("TestFixtureSetUp RUN !!!");
}

[TestFixtureTearDown]
public void TestFixtureTearDown()
{
Console.WriteLine("TestFixtureTearDown RUN !!!");
}


运行,效果如下了:

​​用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown_class_03​​

不用多说了吧,看看效果就知道了。[TestFixtureSetUp] 和 [TestFixtureTearDown] 分别是指在测试类运行前和执行后调用的方法了。这样我们可以很好的解决测试数据库遇到的尴尬境地了……


用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown_测试_04

标签:NUnit,Console,TearDown,void,result,测试,public,测试方法
From: https://blog.51cto.com/dupeng0811/6142087

相关文章

  • 用NUnit为.NET程序做测试 ---Nunit入门
    最近在学习的过程中感觉到项目测试的重要性,自己在网上学习了一番。感觉还是收获颇丰的。在此记下,希望也能为像我这样的程序员一点帮助吧。 我使用的是强悍的NUnit为.NET程......
  • 云原生引擎单元测试实践
    作者:京东零售王雷单元测试概念单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。单元测试是一种白盒测试技术,一般都是由开发人员在编码阶段......
  • 第2章 黑盒测试在线测试
    一、单项选择题当被测程序开发采用强类型语言,界面设计大多采用选择类型控件,且测试进度较为紧张的情况下,为了提高测试效率并且保证测试效果,可选择A等价类划分方法。D......
  • Jmeter构造测试数据之 身份证号码篇
        mportjava.util.*;StringBuildergenerater=newStringBuilder();MapareaCode=newHashMap();areaCode.put("北京市",110000);areaCode.put("天津市",1......
  • Jmeter构造测试数据之 根据身份证号码计算出当前年龄
       importjava.util.*;importjava.lang.*;Stringriqi=prev.getResponseDataAsString();//获取响应结果Stringyear=riqi.substring(6,10);//截取年份String......
  • Jmeter构造测试数据之 姓名、手机号码篇
    importjava.util.*;importjava.lang.*;Stringstr="${__RandomString(3,0123456789,)}";Stringstr_xing="${__RandomString(1,赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤......
  • selenium自动化测试学习1
    注意:py文件命名的时候,不能直接命名为selenium.py,会和第三方包selenium冲突 一、环境搭建:1、下载第三方包seleniumpip3installselenium -ihttps://pypi.tuna.tsing......
  • 《渗透测试》JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目 Day14
       0、什么是JS渗透测试?在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过......
  • 性能测试学习
    性能测试学习目的:1、所有公司的项目都要进行性能测试,不管是蒙混过关、还是性能压力需求小2、测试工程师要完成企业的性能测试3、多用户并发、负载等一些概念指标的理解......
  • 使用nc批量做网络连通性测试
    转载: 第6期:使用nc批量做网络连通性测试-知乎(zhihu.com)网络连通性验证,是服务器环境搭建的重要任务之一。检查目标机器的服务端口是否可连通,本文将介绍常见的端口检......