【发布时间】:2018-02-24 02:06:14
【问题描述】:
我已经使用 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
它首先“自动”运行测试,然后运行主程序本身。
这里的“自动化”测试是什么意思以及如何使上述测试“自动化”?
【问题讨论】:
标签: python python-3.x unit-testing automated-tests tdd