问题标签 [magicmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
70 浏览

python - 在类方法中传递的 Python unittest 测试被调用

我有一个方法,它需要两个输入一个电子邮件类和一个数据字典。

我正在尝试编写一个单元测试,它将断言 email_client.create_email 是根据输入数据使用正确的值调用的。

在我的测试文件中,我有

我通常会通过类似于以下内容的方法来测试调用的方法:

但是,由于这次我正在测试使用(和 MagicMock)调用传入的类的内容,所以我不知道应该如何完成。

0 投票
2 回答
272 浏览

python - 父类中使用的模拟对象

我在不同的包中有两个类,其中一个继承自另一个。我想测试子类。

那么如何模拟父类中使用的外部对象呢?我很困惑他们现在驻留在哪个命名空间中。

0 投票
1 回答
9977 浏览

python - 将整数与 MagicMock 进行比较在 python 的 unittest 中不起作用

我有一个类,它使用类变量来选择要执行的逻辑。

我正在编写一个单元测试并在另一个文件中模拟 SomeHelper() :

我收到以下错误:

TypeError:“MagicMock”和“int”的实例之间不支持“>”。

我以为我my_var是在修补模块后定义的。

0 投票
1 回答
721 浏览

python - 在 Python 单元测试中正确检查 MagicMock 对象

我正在测试这段代码:

在我的单元测试中,我想断言这正是通过传递x并返回结果来完成的,所以我将一个MagicMock对象传递为x

然后我检查结果是否符合我的预期:

导入后unittest.mock,我需要修补mock模块的内部结构,以便能够正确地对round()函数进行魔术模拟(有关详细信息,请参阅https://stackoverflow.com/a/50329607/1281485):

所以,现在,正如我所说,这行得通。但我觉得它非常难以阅读。此外,我需要花很多时间才能找到诸如此类的东西_mock_new_parent。下划线还表示这是一个“私有”属性,不应该使用。文档没有提到它。它也没有提到实现我尝试的另一种方法。

是否有更好的方法来测试返回MagicMock的对象是否按照应有的方式创建?

0 投票
2 回答
8196 浏览

python - python检查一个方法是否被调用而不模拟它

要检查是否在 b 中调用了 tmp 方法,推荐的方法是

但是这里的 tmp 被嘲笑了,并没有导致"hi"被打印出来。

我希望我的单元测试检查是否调用了方法 tmp 而不模拟它。

这可能吗?

我知道在编写 unitest 时这不是一个标准的事情。但是我的用例(这有点棘手)需要这个。

0 投票
1 回答
134 浏览

python - python mocking 检查对象的方法是否被访问(未调用)

我想测试是否曾经调用过 a.tmp。我怎么做?请注意,我仍然不想模拟 tmp() 方法,并且更喜欢python 检查是否调用了方法而不模拟它

0 投票
1 回答
409 浏览

python-3.x - 如何进行 http.server do_GET 模拟单元测试?

我是单元测试的初学者。我想知道如何对以下功能进行模拟单元测试。

测试类:

有人可以帮我解决这个问题吗?

0 投票
1 回答
123 浏览

python - 如何使用 MagicMock 模拟以下 python 函数?

如何在导入 C 类的测试模块中模拟 g 来测试 f?

0 投票
1 回答
322 浏览

dataframe - 如何在 MagicMock obj 上设置值。这样被测函数不会返回 MagicMock 对象

嘿,我刚刚开始使用 Python 中的单元测试和模拟。尝试测试一个函数,该函数采用单列数据框并在根据数据框值进行一些计算后返回一个浮点数。

我遇到了一个问题,结果是 MagicMock 对象而不是浮点数。我尝试寻找答案,但无法理解如何正确设置模拟对象的返回值。

运行测试的输出。

0 投票
1 回答
357 浏览

python - 如何在 Python 中为不同的 MagicMock 实例设置不同的属性?

我想断言它say_name是用 list 中的每个值调用的name

如果只MyClass创建了一个实例,通常情况下,我可以通过设置来设置属性mock_my_class.return_value = PropertyMock(name=name)

但是,在这种情况下,会创建多个不同的实例MyClass

因此,此代码将引发错误,因为my_func它是由测试人员执行的,say_name并且正在传递一个没有name属性的模拟。

那么,如何为不同的 MagicMock 实例设置不同的属性呢?