单元测试是集中测试软件中的,单元测试中常用的测试模式

单元测试跟软件设计一样,有一些常用的模式,这篇文章是介绍一些常用的模式,其中的示例是C#代码,都比较简单,我想大家都能看懂。下面进入正题:

1、准备,执行,断言(Arrange, Act, Assert)。这种模式是非常常见的,套用这种模式进行单元测试通常的做法如下:

1)准备测试环境,测试数据等

2)执行被测试方法

3)用断言来验证执行结果

下面是一段测试代码,被测方法的功能是把字符串中每个单词的首字母转为大写,特殊字符用下划线替代。

[TestMethod()]

public void CapitalizeTest()

{

//准备数据

string input = "hello world!";

string expected = "HelloWorld_";

//执行测试

string actual;

actual = TextHelper.Capitalize(input);

//验证结果

Assert.AreEqual(expected, actual);

}

2、构造函数测试。这种模式适合对类中某些特殊的属性进行测试,被测的属性都有一个特点–它们都是不变量;例如数组的初始化以后,其容量是不会变化的,无论这个数组对象被什么样的外部方法调用。一般的做法如下:

1)创建一个实例

2)对该实例进行外部调用

3)用断言来验证执行结果

下面是一段代码;首先创建一个数组,然后使用该数组,最后验证该数组的大小有没有变化。

[TestMethod]

public void TestInvariant()

{

//创建一个实例

int capacity = 5;

int[] intArray = new int[capacity];

//进行调用

for (int i = 0; i < intArray.Length; i++)

{

intArray.SetValue(i, i);

}

//验证结果

Assert.AreEqual(capacity, intArray.Length);

}

3、反向关联(Roundtrip)。这种模式适合于被测方法有一个可逆方法的情况下使用。它的数学证明是:f-1(f(x)) = x

下面是一段示例代码:

[TestMethod]

public void RoundTripTest()

{

string str = "10";

//把字符串转换为整数,然后再转换为字符串

int i = Int32.Parse(str);

string finalString = i.ToString();

//验证结果

Assert.AreEqual(str, finalString);

}

21/212>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值