在python unittest中创建模拟对象

在python unittest中创建模拟对象,python,python-2.7,unit-testing,python-unittest,Python,Python 2.7,Unit Testing,Python Unittest,我对Python中的unittest一无所知,如果这是一个noob问题,那么很抱歉 我有一个客户类: class Customer(object): def __init__(self, name, clubMember, taxExempt): self.name = name self.clubMember = clubMember self.taxExempt = taxExempt def isClubMember(se

我对Python中的unittest一无所知,如果这是一个noob问题,那么很抱歉

我有一个客户类:

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)等。

我猜您的模块名也是
客户
,当您执行
导入客户
时,它导入的是模块而不是类

改为这样做

from Customer import Customer 

在测试模块中。

您的
Customer
类是否有可能在
Customer.py
中定义?如果是这样,您需要将测试文件中的导入更改为来自Customer import Customer的
,您可以显示目录结构吗?您的文件是否包含名为
Customer.py
Customer
类?如果是,您可能希望从客户导入客户。不过要注意的是,这并不是真正的嘲笑!您肯定不想模仿客户,因为这是您正在测试的东西!