2012-04-02 107 views
2

我刚开始进入测试开发阶段,并且很努力地理解要测试什么。这里有很多foobar的例子,但是我很难知道如何测试我的项目单元。例如,利用这个功能简单的返回一个文本文件的行作为一个列表,其中:Python鼻子测试示例

def getLines(filename): 
    try: 
     f = open(filename,'rb') 
     lines = f.readlines() 
     f.close() 
    except: 
     break 
    return lines 

如果这是你的功能,你会怎么测试?你不需要编写代码,只要你喜欢就用广义的语言告诉我。

感谢

+1

为什么你有这样的功能呢? '打开(filename,'rb')作为f:lines = f.readlines()'不完全是你需要抽象出来的东西。 – Amber 2012-04-02 22:10:33

+0

我喜欢这个,但是我可以用'with'处理异常吗? – MFB 2012-04-02 22:14:30

+0

您写的代码不会“按原样”处理异常。但是,是的,你可以在'try' /'except'块中包装'with'语句。 – Amber 2012-04-02 22:19:08

回答

4

所以,如果文件名是无效的,如果文件名是有效

你可以定义一个KnownValues与文件名和数量词典将返回所有线路列表你的函数会返回一个空列表文件中的行,像这样,

file1 -> 20 
file2 -> 30 
file3 -> 0 // invalid entry 

然后,你可以写一个assertEqual便算,该函数返回

列表中的项目数量210
-2

在计算机编程中,单元测试是对源代码的各个单元进行测试以确定它们是否适合使用的一种方法。单元是应用程序中最小的可测试部分。在程序编程中,单元可以是单独的功能或程序。单元测试由程序员创建或偶尔由白盒测试人员创建。

你的函数是用来统计文件的行数,输入参数是一个文件对象,所以你可以准备将​​不同行数的文件作为输入,然后你可以编写一个assertEqual来计数列表中该函数正在返回的项目。

此外,你还必须检查异常