基本 If 语句单元测试
Basic If Statement Unittesting
背景: 这里是单元测试初学者。在编写代码时尝试养成测试驱动开发的习惯。所以我做了一个简单的奇数或偶数计算器,想测试这个简单程序的每个角度
简单 odd/even 数字检查器的代码
def get_odd_even(numb):
if numb % 4 == 0:
print("This number is a multiple of 4")
elif numb % 2 == 0:
print("This number is even")
else:
print("This number is odd")
if __name__ == "__main__":
numb = int(input("Enter a number: "))
get_odd_even(numb)
检查奇数条件的单元测试是否有效
import unittest
from odd_even import get_odd_even
class MyTestCase(unittest.TestCase):
def test_odd(self):
self.assertEqual(get_odd_even(7), "This number is odd", "Should read this as an odd number")
if __name__ == '__main__':
unittest.main()
回溯
This number is odd
F
======================================================================
FAIL: test_odd (__main__.MyTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_odd_even.py", line 7, in test_odd
self.assertEqual(get_odd_even(7),True, "Should read this as an odd number")
AssertionError: None != True : Should read this as an odd number
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (failures=1)
我也尝试过:
假设因为 if 语句正在寻找一个布尔响应,我断言我的参数 7 == 为 True self.assertEqual(get_odd_even(7), True, "Should read this as an odd number")
assertEqual
将检查它的前两个参数是否相等。这意味着它正在测试 get_odd_even
的 return 值是否与 True
相同。但是,您的 get_odd_even
函数没有 return 值。这就是您得到 AssertionError: None != True
的原因。您应该将 get_odd_even
更改为 return 字符串而不是打印它们,或者查看 asserting output.
背景: 这里是单元测试初学者。在编写代码时尝试养成测试驱动开发的习惯。所以我做了一个简单的奇数或偶数计算器,想测试这个简单程序的每个角度
简单 odd/even 数字检查器的代码
def get_odd_even(numb):
if numb % 4 == 0:
print("This number is a multiple of 4")
elif numb % 2 == 0:
print("This number is even")
else:
print("This number is odd")
if __name__ == "__main__":
numb = int(input("Enter a number: "))
get_odd_even(numb)
检查奇数条件的单元测试是否有效
import unittest
from odd_even import get_odd_even
class MyTestCase(unittest.TestCase):
def test_odd(self):
self.assertEqual(get_odd_even(7), "This number is odd", "Should read this as an odd number")
if __name__ == '__main__':
unittest.main()
回溯
This number is odd
F
======================================================================
FAIL: test_odd (__main__.MyTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_odd_even.py", line 7, in test_odd
self.assertEqual(get_odd_even(7),True, "Should read this as an odd number")
AssertionError: None != True : Should read this as an odd number
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (failures=1)
我也尝试过:
假设因为 if 语句正在寻找一个布尔响应,我断言我的参数 7 == 为 True self.assertEqual(get_odd_even(7), True, "Should read this as an odd number")
assertEqual
将检查它的前两个参数是否相等。这意味着它正在测试 get_odd_even
的 return 值是否与 True
相同。但是,您的 get_odd_even
函数没有 return 值。这就是您得到 AssertionError: None != True
的原因。您应该将 get_odd_even
更改为 return 字符串而不是打印它们,或者查看 asserting output.