from work11_3 import Employee import unittest class Give_raiseTest(unittest.TestCase): def setup(self): self.ep_1=Employee('张','一',5000) def test_give_default_raise(self): ep_1_raise=self.ep_1.give_raise() self.asserEqual(ep_1_raise,10000) def test_give_custom_raise(self): ep1_raise=self.ep_1.give_raise(7000) self.asserEqual(ep_1_raise,10000) unittest.main()
时间: 2023-09-04 07:07:10 浏览: 99
这段代码有几个小问题:
1. `setup` 方法应该是 `setUp`,这是由于 `unittest` 框架对于特定的方法名称有要求。
2. 在第二个测试用例中,断言语句应该是 `self.assertEqual(ep1_raise,12000)`,因为自定义加薪金额为 7000,所以总工资应该是 12000。
修改后的代码如下:
```python
from work11_3 import Employee
import unittest
class Give_raiseTest(unittest.TestCase):
def setUp(self):
self.ep_1 = Employee('张', '一', 5000)
def test_give_default_raise(self):
ep_1_raise = self.ep_1.give_raise()
self.assertEqual(ep_1_raise, 10000)
def test_give_custom_raise(self):
ep_1_raise = self.ep_1.give_raise(7000)
self.assertEqual(ep_1_raise, 12000)
unittest.main()
```
相关问题
import unittest from tt11_3_1 import Employee class Employ(unittest.TestCase): def setup(self): self.xzh=Employee('zihao','xiong',6000) def test_give_default_raise(self): self.xzh.give_raise() self.asserEqual(self.xzh.price,11000) def teat_give_custom_raise(): self.xzh.give_raise(500) self.asserEqual(self.xzh.price,6500) if '__name__'=='__main__': unittest.main()
你的代码有一些问题,首先是 `class Employ` 这个类名应该是 `class TestEmployee`,因为你是在编写测试用例。其次,`setup` 方法应该是 `setUp`,并且你需要在方法名前加上 `test` 前缀,这样才能被 `unittest` 自动识别为测试用例。最后,`asserEqual` 方法应该是 `assertEqual`。
下面是修改后的代码:
```python
import unittest
from tt11_3_1 import Employee
class TestEmployee(unittest.TestCase):
def setUp(self):
self.xzh = Employee('zihao', 'xiong', 6000)
def test_give_default_raise(self):
self.xzh.give_raise()
self.assertEqual(self.xzh.price, 11000)
def test_give_custom_raise(self):
self.xzh.give_raise(500)
self.assertEqual(self.xzh.price, 6500)
if __name__ == '__main__':
unittest.main()
```
注意,你需要在当前目录下存在 `tt11_3_1.py` 文件,且其中定义了 `Employee` 类。
import unittest class Test1 (unittest.TestCase): #setUP def setUP(self): print ('begin test') def tearDown(self): print ('end test') def test_01(self): self.assertEqual('sel','se',msg=None) if __name__ == '__main__': unittest.main()
这段代码是一个简单的 Python 单元测试示例。它定义了一个名为 `Test1` 的测试类,该类继承了 `unittest.TestCase` 类。`unittest` 模块提供了一个框架来编写和运行单元测试。
在 `Test1` 类中,我们定义了三个方法:`setUp()`、`tearDown()` 和 `test_01()`。`setUp()` 方法在每个测试方法之前运行,用于执行测试前的准备工作,例如创建测试数据或者连接数据库。`tearDown()` 方法在每个测试方法之后运行,用于执行测试后的清理工作,例如删除测试数据或者关闭数据库连接。`test_01()` 方法是一个测试方法,用于执行实际的测试代码。
在 `test_01()` 方法中,我们使用了 `self.assertEqual()` 方法来比较两个字符串是否相等。这是一个断言方法,如果比较结果不相等,就会引发一个 AssertionError 异常。在这个例子中,我们故意让比较结果不相等,以便在测试运行时引发一个异常。
最后,我们使用 `unittest.main()` 函数来运行测试。这个函数会自动查找所有以 `test` 开头的测试方法,并运行它们。在运行测试之前,会先执行 `setUp()` 方法,在运行测试之后,会执行 `tearDown()` 方法。在这个例子中,`setUp()` 和 `tearDown()` 方法会输出一些调试信息,以便我们了解测试的执行过程。
阅读全文