举一个例子如何使用python unittest
时间: 2023-07-20 09:28:26 浏览: 62
当使用Python编写测试时,unittest是一个非常有用的模块。以下是一个使用unittest测试一个简单函数的示例:
假设我们要测试一个名为`add`的函数,这个函数会接收两个整数并返回它们的和。我们可以编写一个名为`test_add`的测试用例,确保我们的函数按预期工作。
```python
import unittest
def add(x, y):
return x + y
class TestAdd(unittest.TestCase):
def test_add(self):
self.assertEqual(add(1, 2), 3)
self.assertEqual(add(0, 0), 0)
self.assertEqual(add(-1, 1), 0)
if __name__ == '__main__':
unittest.main()
```
在这个例子中,我们首先导入了unittest模块。然后,我们定义了一个名为`add`的函数,并编写了一个名为`TestAdd`的测试用例类。
在`TestAdd`类中,我们定义了一个名为`test_add`的测试方法。在这个测试方法中,我们使用`assertEqual`方法来断言我们的`add`函数按预期工作。我们对add函数的三个调用分别测试了它的不同输入和输出。
最后,我们使用`unittest.main()`方法运行测试用例。这将运行我们的`TestAdd`类中的所有测试方法,并输出测试结果。
相关问题
Python使用单元测试和白盒测试举一个例子
下面是一个使用Python编写的单元测试和白盒测试的示例:
```python
# 示例类,实现了一个简单的字符串转换器
class StringConverter:
def to_uppercase(self, s):
return s.upper()
def to_lowercase(self, s):
return s.lower()
# 单元测试示例,使用unittest框架
import unittest
class TestStringConverter(unittest.TestCase):
def setUp(self):
self.converter = StringConverter()
def test_to_uppercase(self):
self.assertEqual(self.converter.to_uppercase("hello"), "HELLO")
self.assertEqual(self.converter.to_uppercase("World"), "WORLD")
def test_to_lowercase(self):
self.assertEqual(self.converter.to_lowercase("HELLO"), "hello")
self.assertEqual(self.converter.to_lowercase("World"), "world")
# 白盒测试示例,手动编写测试用例
def test_string_converter():
converter = StringConverter()
# 测试to_uppercase方法
assert converter.to_uppercase("hello") == "HELLO"
assert converter.to_uppercase("World") == "WORLD"
assert converter.to_uppercase("") == ""
# 测试to_lowercase方法
assert converter.to_lowercase("HELLO") == "hello"
assert converter.to_lowercase("World") == "world"
assert converter.to_lowercase("") == ""
```
在这个示例中,单元测试使用了unittest框架来测试StringConverter类的to_uppercase和to_lowercase方法,而白盒测试则手动编写了一些测试用例来测试代码的不同分支,例如空字符串的情况。通过这些测试用例,可以更全面地测试代码的功能和正确性。
unittest使用例子
以下是一个使用unittest的示例:
```python
import unittest
def add(x, y):
return x + y
class TestAdd(unittest.TestCase):
def test_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
self.assertEqual(add(0, 0), 0)
def test_add_negative_numbers(self):
self.assertEqual(add(-2, -3), -5)
def test_add_mixed_numbers(self):
self.assertEqual(add(2, -3), -1)
if __name__ == '__main__':
unittest.main()
```
在此示例中,我们编写了一个名为“add”的函数,它将两个数字相加并返回结果。然后,我们使用unittest编写了一个测试类TestAdd,它包含三个测试方法,每个方法测试不同的输入情况并验证函数的输出是否正确。
在运行测试时,我们使用unittest.main()方法来运行测试类中的所有测试方法,并在控制台上输出测试结果。如果所有测试通过,则unittest会输出“OK”消息。否则,它会输出有关失败测试的详细信息。