我已经和python(学术界)合作了5年了,但直到上周才开始测试。两个星期前,我申请了一份工作,雇主要我做一个python任务,其中一部分应该是单元测试。 假设我的代码简单如下(让我们调用它" add_numbers.py"):
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('x', type=float)
parser.add_argument('y', type=float)
class add_numbers ():
def __init__ (self, x, y):
self.x = x
self.y = y
def add(self):
return self.x+self.y
if __name__ == '__main__':
args = parser.parse_args()
an = add_numbers(args.x,args.y)
print('{} + {} = {}'.format(args.x,args.y,an.add()))
并且还假设测试脚本如下,我们将其命名为" test_add_numbers.py":
import unittest
from add_numbers import add_numbers
class TddAdd(unittest.TestCase):
def test_add_two_numbers(self):
self.assertEqual(3, add_numbers(1,2).add())
if __name__ == '__main__':
unittest.main()
然后作为运行我写给他的代码的说明,你可以运行测试
python test_add_numbers.py
并且要运行主程序,您应该输入
python add_numbers 2 3
然而,他在2-3天之后回到我身边并且说他后悔拒绝我告诉我我应该自动化#34;考试。他的意思是什么?因此,我应该将测试集成到主文件中,以便在运行时
python add_numbers 2 3
首先"自动"运行测试,然后运行主程序。
什么"自动化"测试意味着在这里以及如何进行上述测试"自动化"?
答案 0 :(得分:1)
这似乎是一个奇怪的区别。我会要求面试官澄清一下。它不会改变他们的招聘决定,但你提问是完全合理的。
对我而言,自动化测试类似于运行nosetests,但与unittest没有太大差别,只需要更多功能。奇怪的是,python中的大多数(或许多)测试包都是unittest的扩展。