我试图在工作的项目中对一些动态导入进行单元测试。我的想法是手动导入我希望动态加载的类,并验证动态创建的对象实际上是我手动导入的类的实例。你知道吗
到目前为止,我还没能让这个工作。下面是一些示例代码,希望能解释我的意思。你知道吗
SomeApi: 这是稍后将动态加载的类。你知道吗
此文件的路径是/path/to/file/SomeApi.py公司你知道吗
class SomeApi(object):
def __init__(self):
self.a = "a"
self.b = "b"
self.c = "c"
单元测试文件 这是我将执行测试的文件。它将手动和动态导入SomeApi。你知道吗
from path.to.file.SomeApi import SomeApi
class MyTests(unittest.TestCase):
def import_test():
dyn_loaded_module = importlib.import_module("Path.to.file.SomeApi", "SomeApi")
dyn_loaded_class = getattr(dyn_loaded_module, "SomeApi")
dyn_loaded_api = dyn_loaded_class() # Create an instance of the dynamically imported class.
manual_import_api = SomeApi() # Create an instance of the manually loaded class.
assert isinstance(manual_import_api, SomeApi) # This returns True as expected.
assert isinstance(dyn_loaded_api, SomeApi) # This returns False, I am not sure why.
所以基本上我的问题是,为什么动态创建的对象不是手动导入类的实例。你知道吗
另外,这是测试这个的正确方法吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐