在 python 单元测试中创建模拟对象
Creating mock object within python unittest
我对 Python 中的单元测试完全陌生,很抱歉,如果这是一个新手问题。
我有一个客户class:
class Customer(object):
def __init__(self, name, clubMember, taxExempt):
self.name = name
self.clubMember = clubMember
self.taxExempt = taxExempt
def isClubMember(self):
if (self.clubMember == True):
return True
else:
return False
def isTaxExempt(self):
if (self.taxExempt == True):
return True
else:
return False
我想用一种模拟客户来测试它:
import unittest
import Customer
class TestCustomer(unittest.TestCase):
def setUp(self):
self.customer = Customer("John Doe", True, False)
def test_customer_member_status(self):
self.assertTrue(self.customer.isClubMember(), 'incorrect member status')
def test_customer_tax_exemption(self):
self.assertFalse(self.customer.isTaxExempt(), 'incorrect tax status')
def tearDown(self):
self.customer.dispose()
但是,我收到以下错误:
self.customer = Customer("John Doe", True, False)
TypeError: 'module' object is not callable
我尝试搜索了许多不同的网站,但找不到创建模拟客户的正确格式。此外,我不确定如何创建多个模拟客户来测试另一个示例,例如 Customer("Jane Doe", False, True) 等
我猜你的模块名称也是 Customer
并且当你做 import Customer
时,它正在导入模块而不是 class.
改为这样做
from Customer import Customer
在测试模块中。
我对 Python 中的单元测试完全陌生,很抱歉,如果这是一个新手问题。
我有一个客户class:
class Customer(object):
def __init__(self, name, clubMember, taxExempt):
self.name = name
self.clubMember = clubMember
self.taxExempt = taxExempt
def isClubMember(self):
if (self.clubMember == True):
return True
else:
return False
def isTaxExempt(self):
if (self.taxExempt == True):
return True
else:
return False
我想用一种模拟客户来测试它:
import unittest
import Customer
class TestCustomer(unittest.TestCase):
def setUp(self):
self.customer = Customer("John Doe", True, False)
def test_customer_member_status(self):
self.assertTrue(self.customer.isClubMember(), 'incorrect member status')
def test_customer_tax_exemption(self):
self.assertFalse(self.customer.isTaxExempt(), 'incorrect tax status')
def tearDown(self):
self.customer.dispose()
但是,我收到以下错误:
self.customer = Customer("John Doe", True, False)
TypeError: 'module' object is not callable
我尝试搜索了许多不同的网站,但找不到创建模拟客户的正确格式。此外,我不确定如何创建多个模拟客户来测试另一个示例,例如 Customer("Jane Doe", False, True) 等
我猜你的模块名称也是 Customer
并且当你做 import Customer
时,它正在导入模块而不是 class.
改为这样做
from Customer import Customer
在测试模块中。