为了账号安全,请及时绑定邮箱和手机立即绑定

如何测试一个类库 C#?

/ 猿问

如何测试一个类库 C#?

缥缈止盈 2018-11-19 21:18:23

我在asp.net 2.0 中做了一个逻辑结构的类库,编译后存在/bin下。但是页面还没有作完。怎么采用测试这个类库呢?? 随便建个ConsoleApp或者WinApp,添加引用此类库,调试即可

查看完整描述

1 回答

?
函数式编程
  1. TestCase特性有两个效果,包括标记一个方法使用参数并且在调用的时候提供内置数据。示例如下,本示例会使用不同数据集执行3次:

  2. 代码如下:

    [TestCase(12,3,4)]

    [TestCase(12,2,6)]

    [TestCase(12,4,3)]

    public void DivideTest(int n, int d, int q)

    {

      Assert.AreEqual( q, n / d );

    }

  3. Note:.net特性的限制了参数类型,NUnit会在提供给测试用力前尝试将提供的值用Convert.ChangeType()进行转换。

  4. 在一个测试方法上可以多次运用TestCase特性,TestCase特性还可以使用FactoriesAttribute等特性来提供数据。

  5. 通过使用Result参数,测试用例可以有更简单

  6. 代码如下:

    [TestCase(12,3, Result=4)]

    [TestCase(12,2, Result=6)]

    [TestCase(12,4, Result=3)]

    public int DivideTest(int n, int d)

    {

      return( n / d );

    }

  7. 在上面的示例中,NUnit会检查方法返回值是否与提供的Result参数值相等。

  8. TestCaseAttribute还提供一些列其他属性:

    Description:描述测试用例详情

    ExpectedException:指定期望抛出的异常

    ExpectedExceptionName:指定期望抛出异常的全名

    ExpectedMessage:指定期望抛出异常的信息

    Explict:设置为true标记测试用例为显示执行,用Reason来诠释缘由

    Ignore:设置为true用于指定忽略测试用例,用Reason来诠释缘由

    IgnoreReason:指定忽略测试用例及缘由,等同于同时使用Ignore && Reason

  9. 在NUnit2.5,会根据字母少顺序排序及执行。从NUnit2.5.1开始,测试用例不会排序,会根据发行的顺序进行执行。这个发现的顺序不是根据特性字典的顺序来排列并且会根据不同的编译器及CLR的版本不同而不同。

  10. 结果就是在一个测试方法中,TestCase特性出现多次或者其他提供数据的特性与TestCase特性一起使用,测试用例的顺序是不明确的。



查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 231 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信