如何为mock之后添加的额外功能编写测试用例

时间:2017-04-17 10:25:38

标签: python unit-testing flexmock

from flexmock import flexmock
class Addition:
    def add(self,num1,num2):
        return num1+num2

创建模拟

mock=Addition()
flexmock(mock)

mock.should_receive('add')

assert mock.add(1,2)==3

我使用flexmock模拟了Addition类。现在假设如果我还想确保add方法只接收整数值。如何编写测试用例以增加需求。还是我遵循完全错误的道路?

1 个答案:

答案 0 :(得分:0)

嗯,这真的是正确的。您可以将原始函数更改为Exception,并且可以测试导致该函数出现的情况,或者您可以执行此类操作(我使用pytest btw):

def test_add(num1, num2):
    with pytest.raises(TypeError):
        return num1 + num2

test_add(2, 'fizz') ---> PASSED

test_add(2, 2) ---> FAILED
Failed: DID NOT RAISE <type 'exceptions.TypeError'>