当导入的函数以 self 作为参数时如何在 pytest 中传递 self

How to pass self in pytest when imported function takes self as argument

假设我有一个函数存储在 file.py

class temp_class:
    def __init__(self):
        self.x = None
    def temp_function(self , input):
        self.x = input
        return input+1

我想在temp_function

上写一个pyest
import pytest
from file.temp_class import temp_function

def test_temp:
    input_ = 1
    expected_ = 2
    result_ = temp_function(self, input_)
    assert result_ == expected_

这个应该怎么写

这是一个XY problem。您不能单独导入class方法,您必须导入class。

代码:

import pytest
from file import temp_class

def test_temp():
    input_ = 1
    expected_ = 2
    ins = temp_class()
    result_ = ins.temp_function(input_)
    print(result_)
    assert result_ == expected_

test_temp()

结果:

2