<b>操作Ruby简化你的Java测试</b>[Java编程]
本文“<b>操作Ruby简化你的Java测试</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Martin Fowler:当然(乐意花掉一半的时间来写单元测试)!因为单元测试可以使你更快地完成工作.无数次的实践已经证明这一点.你的时间越是慌张,就越是要写单元测试,它看上去慢,但实际上可以帮忙你更快、更舒服地到达目标.
单元测试很重要,但是……
单元测试的重要性,我想再多做一些夸大也不为过.但实际情形是我常常听到Java开辟人员抱怨单元测试烦琐、难写.固然委曲为之,却疲于奔命,并没有领会到它的好处!终究造成的后果是呈现了大量只能运行一次的单元测试.是将责任简单归结于开辟人员?还是开辟流程或制度的不完善?
平心而论,我自己在做TDD或单元测试的时刻,有很多时刻也确切认为无趣,特别是在一些预备测试数据或测试环境的工作上,比方我们常常需求随机生成特定长度的字符串用于测试,需求以下代码:
public String getRandomAlphabetic(int count) {
count = count <= 0 ? 5 : count; //默许为5
//构建一个包含全部英文字母的字符串
String alphabet="abcdefghijklmnopqistuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuffer sb = new StringBuffer(count);
for (int i = 0; i < count; i++) {
int character=(int)(Math.random()*26);
sb.append(alphabet.substring(character, character+1));
}
return sb.toString();
}
假如用Ruby的话
def random_alphabetic(size=5)
chars = ('a'..'z').to_a + ('A'..'Z').to_a # 构建一个从a到Z的一个字母表数组
(0...size).collect { chars[rand(chars.length)] }.join # 从chars数组中返回指定长度的随机字符数组(默许5个),调用join办法,将这个数组中的全部元素衔接成一个字符串
end
比较后大家感受若何?有经验的开辟人员即刻会挑衅说,我们有现成的commons-lang库,简单调用RandomStringUtils.randomAlphabetic(5)便可以完成任务,可我想问的是,假如没有第三方库的支持,你更乐意用哪类方法?还可以想象构建一个树状构造的数据,Ruby的方法
data =<<-EOF
{
"order_id": "xxx-xxxxx-xxx",
"books": [
{"ISBN": "2323-2323", "number": 2, "price": 20.00},
{"ISBN": "2323-2324", "number": 3, "price": 30.00},
{"ISBN": "2323-2325", "number": 2, "price": 20.00},
{"ISBN": "2323-2326", "number": 3, "price": 30.00},
{"ISBN": "2323-2327", "number": 2, "price": 20.00}
]
}
EOF # 该数据为json格局的一段字符串
order = JSON.parse(data)
p order['books'][0]['ISBN'] #=> 2323-2323
用Java该怎样完成,很多人会祭出Java世界中最被滥用的七种武器之首“xml”,即便如此能完成的如此文雅吗?假如不是简单的“语言宗教崇拜”,至少我会毫不犹豫的挑选用Ruby的方法完成任务.省点时间,早点下班陪陪老婆也好啊!:)
以上是“<b>操作Ruby简化你的Java测试</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |