我对Python很陌生,并试图在Android7.1.1模拟器上使用Appium 1.3.1和Python3.6对应用程序进行自动化测试。此时,我陷入了系统权限弹出状态,不知道如何使用Python选择“允许”元素(与选择应用程序中的常规按钮不同)。在授予了对文件的访问权限之后,应用程序才会启动,但我不确定如何在代码中设置它,以及如何用Python编写它。有人有一些样例代码或者知道如何做到这一点吗?这就是我到目前为止所做的:
import os
import unittest
from appium import webdriver
from time import sleep
class m
我想知道是否有一种方法可以轻松地在python测试中模拟Awaitable对象。我知道如何使用AsyncMock来创建镜像协同(即将从方法调用返回Awaitable对象)的模拟,但是在直接模拟Awaitable时遇到了一些问题。
下面是一个例子:
import unittest
from asyncio import Task
from typing import Any
from unittest import IsolatedAsyncioTestCase
from unittest.mock import AsyncMock
async def function_using_awai
我不明白为什么在模拟time.sleep()时不能执行这个操作-- sleep()方法仍然会延迟给定的时间:
import unittest
from unittest.mock import patch
from time import sleep
class TestTime(unittest.TestCase):
@patch('time.sleep', return_value=None)
def test_time(self, mock_time):
sleep(10) # still delays 10s
if __name_
无法从aws模拟GlueContext 我有以下几行代码 sc = SparkContext()
gluecontext = GlueContext(sc)
spark = gluecontext.spark_session 如何使用python unittest模拟gluecontext? How to mock in a python unittest a library not installed locally?
我有一个python代码,需要在Python2和3中运行。在python2中,dict.values()返回列表,但是在Python 3中,它返回dict_val对象。因此,为了使其兼容,我把list(dict.values())。效果很好。但是,当我使用python模拟进行单元测试时,有一个错误。我在嘲弄dict.values(),它提供类似于这个<MagicMock name='mock().values()' id='1099587993168'>的输出,但是当我使用一个列表时,它会生成这个空列表。下面是一个例子。
功能文件:
class ab
我正在测试的代码如下所示:
def to_be_tested(x):
return round((x.a + x.b).c())
我想以x的形式传递一个Mock对象来测试它。我尝试这样做:
import unittest
import unittest.mock
class Test_X(unittest.TestCase):
def test_x(self):
m = unittest.mock.Mock()
to_be_tested(m)
# now check if the proper call has taken place on m
对x.a的调用
我已经试着学习Python大约6周了。在这个网站上读了很多关于TDD的文章之后,我买了的“单元测试的艺术”(很棒的书!)在学习Python的同时尝试和实验TDD。这本书使用.NET,但它似乎不是一个问题。存根是存根,模拟是模拟。
当我在阅读,并在网上看到TDD的例子时,我真的觉得我理解为什么程序员会像他们一样编写代码。但一旦我坐下来试一试,我就什么也得不到了。
让我举一个昨天的例子:
我想尝试一个不那么复杂的项目。基本上,我想要的是一个类,通过下载和解析RSS提要,它包含一个包含(名称、日期)的元组列表。我为我的测试创建了一个新的py文件(还没有编写“真正的代码”)并编写了一个测试用例:
im
我如何用os.remove来模仿unittest.mock?
我的尝试(使用pytest)
def test_patch_remove():
with patch("os.remove"):
remove('foo')
给出误差
remove('foo') E FileNotFoundError: [Errno 2] No such file or directory: 'foo'
指示未对删除进行模拟。
我很难理解python的模拟测试方法。
我想在上做一些嘲弄。
由于xbmc、xbmcaddon和xbmcgui包不能在普通python环境中导入,所以我设法模拟它们如下:
class XBMCTestCase(unittest.TestCase):
def setUp(self):
#Mock up any calls to modules that cannot be imported
self.xbmc = Mock()
self.xbmcgui = Mock()
self.xbmcaddon = Mock()
我正在使用python mock,并进行了一个单元测试,其中我需要确保调用了一个函数,并且其中的第一个元素是一个特定值。考虑这个简短的例子: import unittest
from mock import patch, ANY
class foo():
def something(self, a, b):
print a,b
class footest(unittest.TestCase):
def testany(self):
f = foo()
with patch.object(f, "something
我有代码和测试文件:
code.py
class Code:
def do_something_inside(self, a, b, c):
return a-b-c
def do_something(self, b, c):
self.do_something_inside(30, b, c)
test.py
import unittest
import unittest.mock as mock
from code import Code
class TestStringMethods(unittest.TestCase):
d
我不想手动测试我的代码,而是尝试编写一个模拟/修补我的依赖项的测试(PyInquirer是一个非常整洁的包,它为我处理CLI --问题插入,答案删除)。
然而,作为Python的新手,我在嘲笑这种依赖方面遇到了困难。下面是我正在测试的代码:
from PyInquirer import prompt
class Foo:
def bar(self):
# this line is asking the user for inpit, and that's what I want to mock.
a = prompt({'name
我正试图为我的主模块和main()方法编写一个单元测试(如果需要的话,也可以称之为集成测试)。
看起来是这样的:
# main.py in mymodule
# some imports...
def main() -> None:
# args is a result of argparse parsing
try:
if args.type == 'a':
from mymodule import a
a.run()
elif args.type == 'b
我有一个使用.endswith函数进行测试的函数,但是每次我尝试使用修补程序来模拟它时,我都会得到一个错误。
with patch("killme.endswith",MagicMock()) as mock_endswith
我尝试用以下方法替换killme.endswith:
killme.UserString.endswith
killme.__builtin__.endswith
killme.__builtin__.str.endswith
killme.str.endswith
killme.py
def foo(in_str):
if i
如何使用python unittest.mock模拟python方法,它将返回作为参数传递的相同值,
我试过了
from unittest.mock import MagicMock
def dummy_function(value):
"Will return same value as value passed to the function"
return value
# To moke gettext function used in template
# Then I pass this mock method to Jinja2 template