【发布时间】:2012-04-04 09:36:30
【问题描述】:
我的部分任务是为每个函数创建测试。这有点长,但我很困惑。我在这个函数下面放了一个链接,这样你就可以看到它的样子
第一个代码非常长,因为。
def load_profiles(profiles_file, person_to_friends, person_to_networks):
'''(file, dict of {str : list of strs}, dict of {str : list of strs}) -> NoneType
Update person to friends and person to networks dictionaries to include
the data in open file.'''
# for updating person_to_friends dict
update_p_to_f(profiles_file, person_to_friends)
update_p_to_n(profiles_file, person_to_networks)
下面是整个代码:http://shrib.com/8EF4E8Z3,我通过 mainblock 对其进行了测试,它可以工作。 这是我们提供的用于转换它们的文本文件(profiles_file): http://shrib.com/zI61fmNP
我如何通过鼻子运行测试用例,有什么样的测试结果?还是我不够具体?
进口鼻子 导入 a3_functions
def test_load_profiles_
如果 name == 'main': 鼻子.runmodule() 我走了那么远,然后我不知道我可以测试什么功能。
【问题讨论】:
-
是的,你不够具体。测试用例是可以输入程序的数据示例,您必须查看输出是否正确并且程序没有失败。要运行测试用例,您可以简单地创建一些文件,例如
profiles_file并使用它们运行您的程序。看看它是否有效。用不同的数据制作不同类型的文件,看看它们是否都有效。当我们对数据一无所知时,很难看出您应该运行哪些测试用例。 -
哦,因为有太多的数据,我无法在这里全部复制。除非我真的和他们一对一地详细讨论。人们不会费心阅读它。所以测试这些类型的数据你必须创建你自己的文本?
-
是的,创建您自己的文件,或者您的程序接受的任何输入。尝试并使用几乎所有你能想到的不同类型的东西,看看你的程序是否适用于所有情况。
-
合理的最小测试用例数量是多少,因为我不知道显而易见的测试用例。我认为 1 还不够,但我认为我不需要 7 或 8。
-
等等,如果我创建自己的文本,那么我该如何编写代码。 import nose import a3_functions #我的函数def所在的文件名 def test_load_profiles(): assert a3_functions.load_profiles(profiles_file, person_to_friends, person_to_networks)???? if name == 'main': nose.runmodule() 它怎么知道我使用的是我自己制作的文本文件... 天哪,这太令人困惑了跨度>