草庐IT

rspec-mocks

全部标签

python - 如何使用 Mock @patch 获取调用计数?

我正在为我们正在开发的某个库编写单元测试。该库利用requests.post()向外部服务器执行POSTHTTP请求。在我的UT中,我显然不想联系真正的服务器,而是要模拟响应。为此,我编写了一个函数,如下所示:defmocked_post(url,headers,data,**kwargs):response=Mock()#Somelogic,irrelevanthere.returnresponse我在我的单元测试类周围修补了这个函数:@patch('mylib.requests.post',mocked_post)classMyTest(TestCase):deftest_foo(

python - RSpec 是否有 python 等价物来做 TDD?

我正在寻找像Ruby的RSpec这样的测试框架来在Python中进行测试驱动开发。像RSpec这样的框架的优势在于它提供了一个非常适合TDD的DSL。首先,您用英语描述测试,然后编写测试,当测试失败时,您会收到一条消息,说明哪个测试失败了,并很好地描述了测试试图做什么。到目前为止,我已经看过PyTest和Nose。PyTest似乎比RSpec更接近ruby​​的MiniTest。它没有提供带有语言的DSL以使其读起来像规范,而是专注于断言。Nose看起来像是PyTest上的一个包装器,它没有添加自己的DSL。我还缺少另一个选项吗?还是我只是在滥用PyTest和Nose?Python社区

python - 你如何模拟一个 python 类并为每个实例化获取一个新的 Mock 对象?

好的,我知道manual中提到了这一点,并且可能与side_effect和/或return_value有关,但一个简单直接的示例将极大地帮助我。我有:classClassToPatch():def__init__(self,*args):_do_some_init_stuff()defsome_func():_do_stuff()classUUT():def__init__(self,*args)resource_1=ClassToPatch()resource_2=ClassToPatch()现在,我想对UUT类进行单元测试,并模拟ClassToPatch。知道UUT类将恰好实例化两

Python mock Patch os.environ 和返回值

使用模拟单元测试conn():app.pyimportmysql.connectorimportos,urlparsedefconn():if"DATABASE_URL"inos.environ:url=urlparse(os.environ["DATABASE_URL"])g.db=mysql.connector.connect(user=url.username,password=url.password,host=url.hostname,database=url.path[1:],)else:return"Error"test.pydeftest_conn(self):with

python - unittest.mock : asserting partial match for method argument

Rubyist在这里编写Python。我有一些看起来像这样的代码:result=database.Query('complicatedsqlwithanid:%s'%id)database.Query被模拟出来,我想测试ID是否正确注入(inject),而不会将整个SQL语句硬编码到我的测试中。在Ruby/RR中,我会这样做:mock(database).query(/#{id}/)但我看不到像在unittest.mock中那样设置“选择性模拟”的方法,至少没有一些毛茸茸的side_effect逻辑。所以我尝试在断言中使用正则表达式:withpatch(database)asMockD

python - mock.patch.object(... 和 mock.patch(

我试图了解这两种模拟方法之间的区别。有人可以帮助区分它们吗?对于这个例子,我使用passlib库。frompasslib.contextimportCryptContextfromunittestimportmockwithmock.patch.object(CryptContext,'verify',return_value=True)asfoo1:mycc=CryptContext(schemes='bcrypt_sha256')mypass=mycc.encrypt('test')assertmycc.verify('tesssst',mypass)withmock.patch(

python - 如何通过 unittest setUp 在 python 中正确使用 mock

在我尝试学习TDD的过程中,尝试学习单元测试并在python中使用mock。慢慢掌握它,但不确定我是否正确执行此操作。预先警告:我坚持使用python2.4,因为供应商API是作为预编译的2.4pyc文件提供的,所以我使用的是mock0.8.0和unittest(不是unittest2)鉴于'mymodule.py'中的示例代码importldapclassMyCustomException(Exception):passclassMyClass:def__init__(self,server,user,passwd):self.ldap=ldap.initialize(server)

python - 使用 Python Mock 模拟函数

我正在尝试使用pythonmockmoduleMock一个函数(返回一些外部内容).我在模拟导入模块的函数时遇到了一些问题。例如,在util.py我有defget_content():return"stuff"我想模拟util.get_content以便它返回其他内容。我正在尝试这个:util.get_content=Mock(return_value="mockedstuff")如果get_content在另一个模块中被调用,它实际上似乎永远不会返回模拟对象。在如何使用Mock方面我是否遗漏了什么?请注意,如果我调用以下内容,则一切正常:>>>util.get_content=Moc

python - 使用 mock patch 模拟实例方法

我在测试一个Django应用程序时尝试使用富有想象力的Mocktestinglibrary来模拟一些东西。.我似乎无法让它工作,我正在尝试这样做:models.pyfromsomelibimportFooClassclassPromotion(models.Model):foo=models.ForeignKey(FooClass)defbar(self):print"DosomethingIdon'twant!"test.pyclassViewsDoSomething(TestCase):view='my_app.views.do_something'deftest_enter_pr

python - ImportError:没有名为 mock 的模块

所以我尝试使用unittest.mock在我的单元测试中模拟我的一些方法。我愿意:fromunittest.mockimportMagicMockf=open("data/static/mock_ffprobe_response")subprocess.check_output=MagicMock(return_value=f.read())f.close()但我得到了:ImportError:Nomodulenamedmock我试过了:pipinstallmock还是不行。 最佳答案 unittest是一个内置模块;mock是一个