编辑*我似乎用一些无意的话语误导了人们。我认为当instanaited方法包含属性时所有函数。但我真的只想在class2中测试函数中的变量。
我对python&单元测试,如果我问的是完全妄想,请原谅我。
我想知道是否“可以在外部范围内在另一个函数中声明变量”。我一直收到以下错误:
Cannot modify Class2.py
Class1.py
from Class2.py import Class2
Class1(unittest.TestCase)
def test_class2_fun(self):
driver = Class2()
driver.class2_fun
assertTrue(driver.class2_fun.class2_variable) "???
Class2.py
Class2(self)
def class2_fun(self):
class2_variable = TRUE
不确定如何使用正确的语法进行操作。在我用Class2()
分配驱动程序之前通过装饰器还是以某种方式通过补丁可以吗?
答案 0 :(得分:2)
您的类和函数定义中存在一些拼写错误但您想使用hasattr
函数将告诉您对象是否具有特定属性。
如果您要执行的操作是检查local variable
类__init__
以外的Class2
是否存在,我认为如果不修改内容,则可以文件Class2.py
。
在Class1.py
中import unittest
from Class2 import Class2
class Class1(unittest.TestCase):
def test_class2_at_exists(self):
driver = Class2()
self.assertTrue( hasattr( driver, 'class2_attribute' ) )
def test_class2_at_value(self):
driver = Class2()
self.assertTrue( driver.class2_attribute == 'attribute value' )
if __name__ == '__main__':
unittest.main()
在Class2.py
中class Class2(object):
def __init__(self):
self.class2_attribute = 'attribute value'
local_variable = True
在ipython提示,
>>> run Class1.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
答案 1 :(得分:1)
你的断言应该是
assertTrue(driver.class2_attribute)