我不确定我是否遗漏了一些完全明显的东西,但每当我调用unittest.main()时,我的命令行输出都会读出:
Ran 0 tests in 0.000s
应该说我已经运行了两个测试,但是,给出了代码:
import unittest
from Chap11Lesson2 import Employee
class EmployeeTest(unittest.TestCase):
def setUp(self):
"""Setting up a variable for use in the test methods"""
self.employee1 = Employee("Lucas", "Grillos", 20000)
def give_default_raise(self):
"""Testing to see if 5000 is added properly"""
money = 25000
self.employee1.give_raise()
self.assertEqual(self.employee1.salary, money)
def give_custom_raise(self):
"""Testing to see if 10000 is raised properly"""
money = 35000
self.employee1.give_raise(10000)
self.assertEqual(self.employee1.salary, money)
unittest.main()
以下是它正在测试的课程:
class Employee():
def __init__(self, first_name, last_name, salary):
self.first_name = first_name
self.last_name = last_name
self.salary = salary
def give_raise(self, salary_raise = None):
if salary_raise:
self.salary = self.salary + salary_raise
else:
self.salary = self.salary + 5000
def print_salary(self):
print(self.salary)
我以前从来没有这样的问题,所以我不确定该怎么做。我正在学习Eric Matthes的2016年版Python's Crash Course中的Python,如果有任何参考的话。这个问题没有出现在我从中做过的其他课程中。
这是我尝试过的:
我已经尝试摆弄了give_raise(self,salary_raise = None)方法,并改变了如何工作,以防我在内部弄乱了一些内容,但我不明白为什么会影响测试。< / p>
我已经尝试删除它并再次重写它(因为它不是很多代码)希望我只是忘记了一些愚蠢的东西,但是如果我这样做的话我就忘了它了。
如果这是一个非常简单的修复,请提前道歉,如果我对这个问题进行格式化的方式有任何问题,或者如果这不是这样的问题的论坛,这是我第一次在这里发帖,这是道歉
答案 0 :(得分:1)
测试方法需要以test_
开头的名称才能找到它们。
调用您的测试test_give_default_raise
和test_give_custom_raise
。
答案 1 :(得分:0)
EmployeeTest类(unittest.TestCase):,应该有test_方法来运行unittest模块。 所以试试这个:
import unittest
from Chap11Lesson2 import Employee
class EmployeeTest(unittest.TestCase):
def setUp(self):
"""Setting up a variable for use in the test methods"""
self.employee1 = Employee("Lucas", "Grillos", 20000)
def test_give_default_raise(self):
"""Testing to see if 5000 is added properly"""
money = 25000
self.employee1.give_raise()
self.assertEqual(self.employee1.salary, money)
def test_give_custom_raise(self):
"""Testing to see if 10000 is raised properly"""
money = 35000
self.employee1.give_raise(10000)
self.assertEqual(self.employee1.salary, money)
unittest.main()
答案 2 :(得分:0)
更改方法名称,使其以测试方法的'test'为前缀,并且应该运行。