测试没有返回值的方法

在使用JUnit进行单元测试的时候,常会碰到返回值为viod的方法.那该怎么测试这样的方法呢?
[b] 分析难点:[/b]
一般测试总是将一个期望值与一个实际值进行比较。这里直接这样去思考肯定是行不同的。
[b]方法:[/b]
没有返回值的方法,一定有一些可以被观测的地方,比如说一个对象的状态被改变,如果你实在找不出,那恭喜你这个就不需要测试了。因为这个方法根本没有用。所有你必须找到合适的断点。犹如调试程序那样设置断点。找出了断点那就也可以设置一个断言了。恭喜你,你已经找出了方法解决这样的方法的测试了。

现在来试试你分析和找断点的能力吧!现在我们测试一个对象放入容器。Collection.add(Object)方法没有返回值。

public class AddToArrayListTest extends TestCase{
public void testListAdd(){
List list = new ArrayList();
assertFalse(list.contains("hello"));
list.add("hello");
assertTrue(list.contains("hello"));
}
}

这个是一个简单的测试程序。

说说思路吧!
1. 创建一个新的空容器
2. 判断这个容器为空
3. 将对象加入到容器中。
4. 查询空容器中是否存在添加的元素。

记住当你在测试的时候能找到“是否存在”这样的字样那么你就基本能进行测试设计了。


现在看看另外一种情况吧! 如果一个方法从其他某个地方获取数据,但不显式地声明数据是否被成功的装载,该怎么测试呢?下面看看以下这个方法可性不?

public void testLoadProperties() throws Exception{
Properties properties = new Properties();
properties.load(new FileInputStream("application.properties"));
assertEquals("root", properties.getProperty("usename"));
assertEquals("123456", properties.getProperty("password"););
}
注意,这个测试有些事不可靠,因为它从测试程序之外,的其他文件获取数据。这个测试使用load()方法,并验证它的主要:期望的数据被正确地从配置文件中装载进来。

讨论:
以上这个方法是否有效,取决于要测试的方法是否有可以观测的断点,任何一个方法要么有返回值,要么有可以观测的断点。

总结: 如果没有办法找到可以观测的一个断点,那么请你向办法为测试创建一个出来。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值