传递另一个返回数组对象的类的fixture时,get'method'对象不可下标

2024-06-06 08:38:31 发布

您现在位置:Python中文网/ 问答频道 /正文

需要你的洞察力:

在我自己的测试设置(init_setup)中,我需要调用已经在类test_Create_Tmp()中定义的另一个测试。问题是,这个类有一个fixture(init_api),它返回函数api数组

在init_设置中:在inv.test_post_inv_data()行,我得到的“method”对象是不可下标的,因为它通过以下方式调用对象的api:init_api[“nAPI”].postJsonData(…)

如果不允许我从该类中删除fixture init_api(),我如何使其工作? 我知道我可以让它工作,通过完成get-rid fixture init_api,将其代码移动到test_post_inv_data()中

谢谢

我自己的设置:

    @pytest.fixture(scope="class")
    def init_setup(self, read_data):
        #import Test_Create_Tmp class here
        inv = Test_Create_Tmp()
        inv.test_post_inv_data(read_data, inv.init_api)

# this class is defined in another file
class Test_Create_Tmp():
    @pytest.fixture
    def init_api(self, client):
        self.nAPI = NAPI(client)  #NAPI is a class
        self.sAPI = SApi(client)  #SApi is another class
        return {"nAPI": self.nAPI, "sAPI": self.sAPI}

    def test_post_inv_data(self, read_data, init_api):
        ...
        init_api["nAPI"].postJsonData(json.dumps(data))


Tags: testselfapireaddatainitdefcreate
1条回答
网友
1楼 · 发布于 2024-06-06 08:38:31

我明白了。只需创建所需的对象(即nAPI、sAPI)即可调用调用:

inv=测试\创建\ Tmp()

init_api={

'nAPI':  NAPI(client),    #create object of NAPI

'sAPI':  SApi(client)     #create object of SApi

}

库存测试后库存数据(读取数据,初始化api)

相关问题 更多 >