python 断言方法_python-模拟类并在对方法的调用中进行断言...

我正在尝试为Bar编写单元测试,以对Foo的方法read()进行调用.我在setUp()中添加了patch命令,因为其他测试也将使用此补丁.

如何检查期望的参数是否调用了read()函数?

foo.py

class Foo(object):

def __init__(self):

self.table = {'foo': 1}

def read(self, name):

return self.table[name]

bar.py

import foo

class Bar(object):

def act(self):

a = foo.Foo()

return a.read('foo')

test_bar.py

import bar

import unittest

from mock import patch

class TestBar(unittest.TestCase):

def setUp(self):

self.foo_mock = patch('bar.foo.Foo', autospec=True).start()

self.addCleanup(patch.stopall)

def test_can_call_foo_with_correct_arguments(self):

a = bar.Bar()

a.act()

self.foo_mock.read.assert_called_once_with('foo')

输出量

python -m unittest发现

F

======================================================================

FAIL: test_can_call_foo_with_correct_arguments (test_bar.TestBar)

----------------------------------------------------------------------

Traceback (most recent call last):

File "/test_dir/test_bar.py", line 12, in test_can_call_foo_with_correct_arguments

self.foo_mock.read.assert_called_once_with('foo')

File "/usr/local/lib/python2.7/dist-packages/mock.py", line 845, in assert_called_once_with

raise AssertionError(msg)

AssertionError: Expected to be called once. Called 0 times.

----------------------------------------------------------------------

Ran 1 test in 0.001s

FAILED (failures=1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值