我已经使用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天后回来找我,在说完他后悔拒绝我之后,他告诉我,我应该“自动化”测试。他是什么意思?那么,我是否应该将测试集成到主文件中,以便在运行
python add_numbers 2 3它首先“自动”运行测试,然后运行主程序本身。
这里的“自动化”测试是什么意思,以及如何让上面的测试“自动化”?
发布于 2017-09-15 08:57:07
这似乎是一个奇怪的区别。我想请面试官澄清一下。这不会改变他们的招聘决定,但这对你来说是完全合理的。
对我来说,自动化测试类似于运行nosetests,但这与单元测试没有太大区别,只是功能更多一点而已。奇怪的是,python中的大多数(或许多)测试包都是unittest的扩展。
https://stackoverflow.com/questions/46230111
复制相似问题