尽管我花了几个小时在网上浏览文档和各种博客文章,但我仍然不知道如何做到这一点。
我有一门课:
class ExampleClass(object):
def __init__(self,x,y):
self.x = x
self.y = y
def add(self):
return self.x+self.y
def multiply(self):
return self.x*self.y现在假设我想要编写一些测试来检查方法add和multiply是否做了我想让它们做的事情。
在我的测试文件中,我有:
class TestExampleClass(object):
def setup(self):
class_object = ExampleClass(1,1)
def test_add(self):
assert class_object.add() == 2
def test_multiply(self):
assert class_object.multiply() == 1但是,我得到了一个NameError:没有定义全局名称"class_object“。
我真的不确定我应该如何实现我想要的东西,那就是用我理解和知道的一些数据实例化一个类对象,并测试这些数据上的方法是否返回我知道它们应该返回的内容。
发布于 2015-01-10 22:58:59
您描述的错误是因为您的TestExampleClass没有
def __init__(self):在里面。所以它永远不会去真正的创建class_object。
从代码的编写方式来看,我认为您希望setup(self)实际上是__init__(self)
,编辑,,你也需要self.x,等等(在一个单独的答案中提到)。这不是您报告的错误的原因,但它将是您在__init__中看到的错误的原因。
所以大量借鉴了另一个答案,但添加了__init__
class ExampleClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
def multiply(self):
return self.x * self.y
class TestExampleClass(object):
def __init__(self):
self.class_object = ExampleClass(1, 1)
def test_add(self):
assert self.class_object.add() == 2
def test_multiply(self):
assert self.class_object.multiply() == 1发布于 2015-01-10 23:01:34
要创建/访问实例变量,需要用self限定变量
class ExampleClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
def multiply(self):
return self.x * self.y
class TestExampleClass(object):
def setup(self):
self.class_object = ExampleClass(1, 1)
def test_add(self):
assert self.class_object.add() == 2
def test_multiply(self):
assert self.class_object.multiply() == 1https://stackoverflow.com/questions/27877545
复制相似问题