2016-03-21 57 views
-1

我想从另一个模块来测试一个类中的每个方法。所以这里是班级。如何在Python中从类外测试类方法?

#newmodule 

class test: 
    def atest(a,b): 
     return a 

    def btest(a,b): 
     return b 

和其他模块中,我试图做的事:

import unittest 
import newmodule 
test.atest(5,4).assert not errors 
test.atest(7,9).assert not errors 

注:我敢肯定有错误的种种这里,但我只是嘲笑这件事作为一个例子。我在这里的主要问题是如何成功导入newmodule并测试每个方法。我怀疑,尝试从课外测试方法,而不是仅仅测试函数,会有复杂性。

我已经失败了蝙蝠的权利,因为我越来越:

ImportError: no module named newmodule 

即使他们是在同一个目录。

我该如何成功导入这个模块,如果是这样,我能够从课堂外测试方法吗?

+0

它应该命名为'newmodule.py',而不是'newmodule'。另外,方法应该采用'self'参数,拥有'@ classmethod'并采用'cls'参数,或者拥有'@ staticmethod'装饰器。 – zondo

回答

0

“即使它们在同一目录中。” - 不是它们是否在同一个目录中,它的newmodule是否在当前工作目录中。如果你想运行在不同的目录测试,你可以添加你的脚本目录sys.path

import os 
import sys 
sys.path.insert(0, os.path.dirname(__file__)) 
import unittest 
import newmodule 

,你的模块的版本,你要测试的测试这种硬编码,所以你必须决定是否适合你的目标。或者,您可以在测试脚本之外设置PYTHONPATH环境变量以获得更大的灵活性。

相关问题