对于Python,我想通过测试使用pytest或unittest编写的代码来学习使用Python编写的代码。在这方面,我想知道如何测试作为输入的多个数组的断言:
我有一个函数extractDifferentNumber,它的目标是返回一个整数不属于整数序列的其余部分:
def extractDifferentNumber(df):
df_set = set(df)
for each in df_set:
if df.count(each) == 1:
return each它从一个数字序列中提取出不同的数字:
# print(extractDifferentNumber([10,11,10,10,10,10,10])) 11
# print(extractDifferentNumber([20,11,20,20,20])) 11
# print(extractDifferentNumber([1,1,1,1,2])) 2现在,我想使用unittest来验证我的函数是否返回预期的结果:
class SingleDifferentNumberTestCase(unittest.TestCase):
"""Test for `myfunction.py`"""
def setUp(self):
self.input = [10,11,10,10,10,10,10]
self.expected = [11]
def test_is_different(self):
"""Is a number different then the others"""
self.assertTrue(extractDifferentNumber())
if __name__ == '__main__':
unittest.main()在这方面,我有两个问题:
如何将多个数组/测试用例包括在self.input和self.expected中,以及如何像self.assertTrue这样使用unittest来引发适当的断言?
发布于 2017-03-26 16:47:48
只需添加多个方法每一个,以字母test开头
测试用例是通过子类
unittest.TestCase创建的。三个单独的测试是用名称以字母test开头的方法定义的。此命名约定通知测试运行程序哪些方法代表测试。 每个测试的关键是调用assertEqual()以检查预期结果;调用assertTrue()或assertFalse()验证条件;调用assertRaises()验证是否引发特定异常。使用这些方法代替assert语句,这样测试运行程序就可以累积所有测试结果并生成报告。
class SingleDifferentNumberTestCase(unittest.TestCase):
"""Test for `myfunction.py`"""
def test_array_1(self):
"""Is a number different then the others"""
self.assertEqual(extractDifferentNumber([10,11,10,10,10,10,10]), 11)
def test_array_2(self):
self.assertEqual(extractDifferentNumber([20,11,20,20,20]), 11)
def test_array_3(self):
self.assertEqual(extractDifferentNumber([1,1,1,1,2]), 2) https://stackoverflow.com/questions/43031559
复制相似问题