我有一个实用函数,它接受参数大小写并相应地返回值
helper.py
def get_sport_associated_value(dictionary, category, case):
if case == 'type':
return "soccer"
else:
return 1 #if case = 'id'
我有一个使用上述函数的主函数
crud_operations.py
def get_data(category):
dictionary ={.....}
id = get_sport_associated_value(dictionary, category, 'id')
.....
.....
type = get_sport_associated_value(dictionary, category, 'type')
....
return "successful"
现在,我正在使用unittest对get\u data()模块进行单元测试。嘲弄我无法将值传递给id和类型。
@mock.patch('helper.get_sport_associated_value')
def test_get_data(self, mock_sport):
with app.app_context():
mock_sport.side_effect = self.side_effect
mock_sport.get_sport_associated_value("id")
mock_sport.get_sport_associated_value("type")
result = get_queries("Soccer")
asserEquals(result, "successful")
def side_effect(*args, **kwargs):
if args[0] == "type":
print("Soccer")
return "Soccer"
elif args[0] == "id":
print("1")
return 1
我尝试使用side_effect函数和面向问题根据输入参数的不同值模拟get_sport_associated_value()。
问题2:使用mock或mock的最佳方法是什么。这个场景中的magicmock?
任何帮助是赞赏与单元测试谢谢
您错误地将args[0]
测试为case
。side_effect
回调函数的参数应该与您要模拟的函数相同:
def side_effect(dictionary, category, case):
if case == "type":
return "Soccer"
elif case == "id":
return 1
问题内容: 我想了解如何从导入的模块执行功能。 这是我到目前为止的位置。 app / mocking.py: app / my_module / init.py: 测试/模拟测试.py: 这不 符合 我的预期。“已修补”模块仅返回的未模拟值。如何模拟要导入到被测名称空间中的其他包中的方法? 问题答案: 当您从包中使用装饰器时,您 未在 修补名称空间(从本例中导入模块),而是在被测试的名称空间中对其
问题内容: 我的课如下: 在构造函数中的逻辑和是我试图嘲弄的事情。我想要任何调用:返回一个虚拟字符串。 我试过了: 但这似乎不起作用。仍在执行构造函数逻辑,而不是获取的模拟对象。 问题答案: 您发布的代码适用于最新版本的Mockito和Powermockito。也许您还没有准备A?试试这个: A.java MockA.java 两项测试均应通过Mockito 1.9.0,powermockito
出于我无法控制的原因,我必须在我的C代码中实现这个函数: 调用此函数时,编译器是否忽略它,或者是否仍然进行调用?例如: 两行代码的执行时间是相同的,还是第一行需要更长的时间?
问题内容: 所以我有这个示例数据框: 现在我想将这些功能和列获得新列。 就像函数使用列和范围作为创建列的输入一样,类似地,列和范围也用于列: 我可以使用这一种衬管一个接一个地创建每个列,但是我想一次用一个衬管将其应用于两个列。 结果数据帧应如下所示: 我想一次创建这些列,而不是一次创建一列。我怎样才能做到这一点?有什么建议?或类似的东西可以工作? 问题答案: 这是您需要遵循的概念才能实现这一目标。
我有以下课程布局: 我正在为服务创建一个单元测试,但我想将ServiceHelper用作一个“活动”类,但要模拟ServiceHelper中的构造函数参数。有没有办法通过Mockito实现这一点?
我有一个带有路由器的express应用程序,我想与Sinon一起测试。我无法成功模拟传递到请求处理程序的参数,希望能得到一些帮助。 这是我当前使用Mocha、Sinon、Chai的测试设置