如何修补和验证类是否已使用特定参数实例化?

侯曼

简而言之,这是我要测试的课程。查看是否使用'english'创建了Tokenizer('english')。

def summarize(news):
        language = 'english'
        parser = PlaintextParser.from_string(news.body, Tokenizer(language))

这是测试

    @mock.patch.object(PlaintextParser, 'from_string')
    @mock.patch('sumy.nlp.tokenizers.Tokenizer')
    def test_summarize_tokenizer_is_called_with_english(self, token_mock, parser_mock):
        news_mock = mock.MagicMock()
        body = u"xx"
        type(news_mock).body = mock.PropertyMock(return_value=body)
        Summarizer.summarize(news_mock)
        token_mock.assert_called_with('english')

我不断得到:

AssertionError: Expected call: Tokenizer('english')
Not called

但这应该过去了。我想念什么?

米吉尔森

这是嘲弄的棘手部分。需要注意的是你打补丁Tokenizersumy.nlp.tokenizers命名空间。但是,大概您有一个类似于以下内容的import语句:

from sumy.nlp.tokenizers import Tokenizer

在带有的模块中Summarizer这也将Tokenizerin放在该模块的名称空间中。在其他(sumy.nlp.tokenizers)名称空间中进行修补不会影响Tokenizer此处。


解决此问题的一种方法是使用以下命令更改模块中的import语句Summarizer

from sumy.nlp import tokenizers

那么您的函数将变为:

def summarize(news):
    language = 'english'
    parser = PlaintextParser.from_string(news.body, tokenizers.Tokenizer(language))

另一种解决方案,可能的工作是简单地修补Tokenizer中的命名空间Summarizer(不过,也有更多的细微之处这里...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以检查类型是否已使用特定的模板参数实例化?

来自分类Dev

无法使用unittest修补由测试的类实例化的类

来自分类Dev

如何使用反射和Guava TypeToken实例化参数化类的Class对象

来自分类Dev

如何验证是否已使用Lumen接收电子邮件?

来自分类Dev

方案:如何检查是否已使用相同的参数调用函数

来自分类Dev

如何使用 Kodein 为 Factory 类实例化多个参数

来自分类Dev

是否可以使用现有的Singleton实例修补类实例?

来自分类Dev

如何使用Dart和Smoke获取实例的参数化类型?

来自分类Dev

使用模板参数实例化模板类

来自分类Dev

如何仅替换特定类实例化而不是代码的其他部分的参数名称?

来自分类常见问题

使用Exception防止类被不需要的参数实例化是否是一种好习惯

来自分类Dev

检查在单元测试中是否已使用特定参数调用函数

来自分类Dev

如何通过元模型使用显式的第一个参数和默认的第二个参数实例化类?

来自分类Dev

如何验证是否已使用Moq设置了字符串数组中的值

来自分类Dev

检查参数化类型是否为特定类型实例

来自分类Dev

类型类和实例:模式参数成为列表-是否?

来自分类Dev

使用COM的参数化构造函数实例化类

来自分类Dev

使用COM的参数化构造函数实例化类

来自分类Dev

Mokito:如何验证参数是否是具有特定参数的对象?

来自分类Dev

如何使用通用参数实例化接口

来自分类Dev

在Kotlin中,如何使用本机Java参数实例化泛型类?

来自分类Dev

是否可以为Java中的特定实例(参数化)调用SubClass和SuperClass的默认构造函数和参数化构造函数?

来自分类Dev

如何使用for循环实例化类列表?

来自分类Dev

如何使用变量实例化类

来自分类Dev

我如何确定是否已使用 angular 6 缓存了特定图像

来自分类Dev

验证是否已使用Moq调用了void方法

来自分类Dev

如何使用Mockito验证参数化方法

来自分类Dev

构造函数接受参数时如何实例化模板类

来自分类Dev

实例化新对象时如何传入类的参数?

Related 相关文章

  1. 1

    是否可以检查类型是否已使用特定的模板参数实例化?

  2. 2

    无法使用unittest修补由测试的类实例化的类

  3. 3

    如何使用反射和Guava TypeToken实例化参数化类的Class对象

  4. 4

    如何验证是否已使用Lumen接收电子邮件?

  5. 5

    方案:如何检查是否已使用相同的参数调用函数

  6. 6

    如何使用 Kodein 为 Factory 类实例化多个参数

  7. 7

    是否可以使用现有的Singleton实例修补类实例?

  8. 8

    如何使用Dart和Smoke获取实例的参数化类型?

  9. 9

    使用模板参数实例化模板类

  10. 10

    如何仅替换特定类实例化而不是代码的其他部分的参数名称?

  11. 11

    使用Exception防止类被不需要的参数实例化是否是一种好习惯

  12. 12

    检查在单元测试中是否已使用特定参数调用函数

  13. 13

    如何通过元模型使用显式的第一个参数和默认的第二个参数实例化类?

  14. 14

    如何验证是否已使用Moq设置了字符串数组中的值

  15. 15

    检查参数化类型是否为特定类型实例

  16. 16

    类型类和实例:模式参数成为列表-是否?

  17. 17

    使用COM的参数化构造函数实例化类

  18. 18

    使用COM的参数化构造函数实例化类

  19. 19

    Mokito:如何验证参数是否是具有特定参数的对象?

  20. 20

    如何使用通用参数实例化接口

  21. 21

    在Kotlin中,如何使用本机Java参数实例化泛型类?

  22. 22

    是否可以为Java中的特定实例(参数化)调用SubClass和SuperClass的默认构造函数和参数化构造函数?

  23. 23

    如何使用for循环实例化类列表?

  24. 24

    如何使用变量实例化类

  25. 25

    我如何确定是否已使用 angular 6 缓存了特定图像

  26. 26

    验证是否已使用Moq调用了void方法

  27. 27

    如何使用Mockito验证参数化方法

  28. 28

    构造函数接受参数时如何实例化模板类

  29. 29

    实例化新对象时如何传入类的参数?

热门标签

归档