Jan 01, 1970
编写测试是程序员为测试代码库而编写的逻辑程序。在开发过程中,QA 应该了解流程,在将产品交付给用户之前突出应用程序中需要改进的地方。为此,让我们编写一个将两个数字相加并返回结果的函数。
首先,创建一个文件夹,其中包含用于编写本教程中的测试的所有文件。添加一个名为main.py
的文件以在这个新文件夹中编写函数。
# main.py # Add the sum of two numbers def add_sum(num1, num2): return int(num1) + int(num2)
现在我们有了上面的代码块,让我们通过编写一个允许用户通过输入提示输入所需值的函数来检查代码是否有效。函数add_sum()
将两个数字作为参数,并使用运算符+符号返回值以获得总和。在另一个文件result.py
中,复制并粘贴以下代码:
# result.py from main import add_sum print("Please enter the two values\n") num1 = int(input("Please enter the first number: \n")) num2 = int(input("Please enter the second number: \n")) total = add_sum(num1, num2) print(f"The sum of the values is {total}")
main.py
导入add_sum()
int
方法将输入提示值转换为整数
在创建用于编写add_sum()
函数的所有测试用例的测试文件之前,让我们更新main.py
。复制并粘贴以下代码:
# main.py def add_sum(num1, num2): try: return int(num1) + int(num2) except ValueError as err: return err
代码块使用try/except
语句来处理代码中的异常,如果 except 块中存在错误,则会向您发出警报。编程中的这种方法有助于捕获错误并将您指向发生错误的特定行号。
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): def test_do_stuff(self): result = add_sum(5, 10) self.assertEqual(result, 15) if __name__ == '__main__': unittest.main()
如上面的代码块所示,会发生以下情况:
当 test.py 自动运行时,请记住以“test_”开始每个方法。 **
**
Ran 1 test in 0.000s OK
在同一个文件test.py
中,让我们修改代码并粘贴以下内容:
# test.py import unittest from main import add_sum class MainTest(unittest.TestCase): # other test def test_do_stuff2(self): result = add_sum("hulu", 5) self.assertEqual(result, 5) if __name__ == '__main__': unittest.main()
FAIL: test_do_stuff2 (__main__.MainTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test.py", line 11, in test_do_stuff3 self.assertEqual(result, 5) AssertionError: ValueError("invalid literal for int() with base 10: 'hulu'") != 5
python3 -m unittest
此外,要获取有关测试的更多详细信息,请使用带有标志-v (详细)的命令,它会向您显示正常的测试和失败的测试。
python3 -m unittest -v
test_do_stuff (test.MainTest) ... ok test_do_stuff2 (test.MainTest) ... ok ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK