具有轻松风格的python模拟库
mockaccino的Python项目详细描述
mockaccino 0.1
作者paolo victor-paolovictor@gmail.com
一个python模拟库,其语法类似于easymock java模拟库。
为要模拟的类创建模拟对象
2。在此模拟上调用方法,应用修饰符,例如调用将返回的内容以及调用将发生的次数
3。将模拟设置为重播模式
4。继续测试。对模拟对象的方法的调用将按顺序匹配,除非使用“always”修饰符记录调用(稍后将详细介绍)
code example
class calc(object):
def sum(self,a,b):
return a+b
def是偶数(self,n):
返回n%2==0
mock=mockaccino.create_mock(calc)
mock.sum(1,1)。will_return(3)。always()
mock.is_even(2)。will_return(false)
mock.is_even(3)。will_return(true)
print mock.sum(1,1)打印3
打印模拟。是否均匀(2)打印假
打印模拟。和(1,1)打印3
打印mock.is_even(3)打印true
1
用法
这意味着所有即将进行的调用都将与录制的调用匹配
recording mock
例如:
mock=mockaccino.create_mock(stringio.stringio)
mock.getvalue()
mock.replay()
为stringio.stringio类创建一个mock,将其配置为期望getvalue被调用一次并将其置于重播模式。您还可以为期望值指定参数,这些参数将在重播模式下匹配:
mock.sum(2,2)
mock.replay()
mock.sum(1,2)除了定义方法调用的预期参数外,还将引发意外调用错误
,您可以配置其他行为,如返回什么值、需要多少调用以及调用是否引发错误:
mock.sum(2,2)。will_return(5)
mock.sum(1,1)。will_return(2)。times(2)
mock.sum(0,“cat”).will_raise(valueerror).always()
mock.replay()
mock.sum(2,2)将返回5,因为我更喜欢这样做
mock.sum(1,1)
mock.sum(1,1)
mock.sum(1,1)将引发错误,sum(1,1)只在sum(2,2)
mock.sum(0,“cat”)这将导致valueerror
请注意,在设置“always”修饰符之后,不能为该方法记录任何其他行为,反之亦然。
>当前实现的期望修饰符是:
*times(n)-“每当调用此方法时,将调用此方法n次”
*always()-“,这是预期行为“
*将返回(x)-“此方法将返回x”
*将提高(e)-“此方法将引起错误e”
int value”
示例:
from mockaccino.matchers import any
mock.sum(any(int),2).将返回(5).always()
mock.replay()
mock.sum(3,2)返回5
mock.sum(2,2)返回5
mock.sum(3,1)引发未预期的调用方错误
当前唯一实现的匹配器是:
*任意(类型)-“值应为类型”类型
roadmap
1。添加对“magic method”(uuu eq_uuu,uuu str_uuu等)mocking
2的支持。实现一个“verify”方法,检查是否有不匹配的调用
作者paolo victor-paolovictor@gmail.com
一个python模拟库,其语法类似于easymock java模拟库。
为要模拟的类创建模拟对象
2。在此模拟上调用方法,应用修饰符,例如调用将返回的内容以及调用将发生的次数
3。将模拟设置为重播模式
4。继续测试。对模拟对象的方法的调用将按顺序匹配,除非使用“always”修饰符记录调用(稍后将详细介绍)
code example
class calc(object):
def sum(self,a,b):
return a+b
def是偶数(self,n):
返回n%2==0
mock=mockaccino.create_mock(calc)
mock.sum(1,1)。will_return(3)。always()
mock.is_even(2)。will_return(false)
mock.is_even(3)。will_return(true)
print mock.sum(1,1)打印3
打印模拟。是否均匀(2)打印假
打印模拟。和(1,1)打印3
打印mock.is_even(3)打印true
1
用法
这意味着所有即将进行的调用都将与录制的调用匹配
recording mock
例如:
mock=mockaccino.create_mock(stringio.stringio)
mock.getvalue()
mock.replay()
为stringio.stringio类创建一个mock,将其配置为期望getvalue被调用一次并将其置于重播模式。您还可以为期望值指定参数,这些参数将在重播模式下匹配:
mock.replay()
mock.sum(1,2)除了定义方法调用的预期参数外,还将引发意外调用错误
,您可以配置其他行为,如返回什么值、需要多少调用以及调用是否引发错误:
mock.sum(1,1)。will_return(2)。times(2)
mock.sum(0,“cat”).will_raise(valueerror).always()
mock.replay()
mock.sum(2,2)将返回5,因为我更喜欢这样做
mock.sum(1,1)
mock.sum(1,1)
mock.sum(1,1)将引发错误,sum(1,1)只在sum(2,2)
mock.sum(0,“cat”)这将导致valueerror
请注意,在设置“always”修饰符之后,不能为该方法记录任何其他行为,反之亦然。
>当前实现的期望修饰符是:
*times(n)-“每当调用此方法时,将调用此方法n次”
*always()-“,这是预期行为“
*将返回(x)-“此方法将返回x”
*将提高(e)-“此方法将引起错误e”
示例:
from mockaccino.matchers import any
mock.replay()
mock.sum(3,2)返回5
mock.sum(2,2)返回5
mock.sum(3,1)引发未预期的调用方错误
当前唯一实现的匹配器是:
*任意(类型)-“值应为类型”类型
roadmap
1。添加对“magic method”(uuu eq_uuu,uuu str_uuu等)mocking
2的支持。实现一个“verify”方法,检查是否有不匹配的调用