1

我正在尝试为在专用 global_variables 模块中写入变量的函数编写一个 pytest 套件,但我不知道如何检查变量是否被写入那里。我已经尝试使用 pytest-mock 的 mocker.patch 来模拟变量,但 mocker 似乎只允许你从一个模拟变量中读取,而不是写入一个。

正在测试的代码:

import global_variables as gv

def main(filename):
    gv.name = filename
    do_other_stuff()

我的单元测试:

import pytest

def test_main_writes_to_gv():
    # arrange
    output = mocker.patch(gv.name)
    # act
    app.main('foo')
    # assert
    assert output == 'foo'

我想添加某种监听器来查看是否正在写入 gv.name,类似于 mocker 的 .assert_call_with() 方法的工作方式,但我正在寻找类似 .assert_written_to 的东西。

4

0 回答 0