Python,Py.测试:如何包含另一个类的本地函数py.测试过了?

2024-09-29 17:10:05 发布

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

我的测试模块中有:

import pytest
from src.model_code.central import AgentBasic

class AgentBasicTestee(AgentBasic):
    pass

@pytest.fixture()
def agentBasic():
    return AgentBasicTestee()

@pytest.mark.parametrize('alpha, beta, delta, expected', [
    (2, 1, 1, pytest.approx(1)),
])  
def test_a1(agentBasic, alpha, beta, delta, expected):
    assert(agentBasic.a1(alpha, beta, delta,) == expected)

在我的导入模块中

^{pr2}$

我得到的错误消息是: > k = AgentCOne.k_bar(alpha, beta, delta) E TypeError: k_bar() missing 1 required positional argument: 'delta'

编辑:

class AgentCrra:
    def k_bar(self, alpha, beta, delta):
        """non-stochastic steady-state for capital"""
        return ((1 / beta - 1 + delta) / alpha) ** (1 / (alpha - 1))

到目前为止,self取了我的一个参数s.t.delta保持空。。。在


Tags: 模块importalphareturnpytestdefa1bar
2条回答

在调用AgentCOne的方法之前,需要创建它的一个实例。在最简单的情况下,您可以无参数地创建它:

AgentCOne().k_bar(alpha, beta, delta)

或者由于AgentCOne.k_bar似乎没有使用实例中的任何状态(没有对self的引用),您可以考虑将其设为静态的。在

看起来您应该使k_bar成为静态方法:

class AgentCrra:
    @staticmethod
    def k_bar(alpha, beta, delta):
        """non-stochastic steady-state for capital"""
        return ((1 / beta - 1 + delta) / alpha) ** (1 / (alpha - 1))

这将允许您的单元测试运行。在

相关问题 更多 >

    热门问题