2014-12-19 7 views
1

Я наткнулся на это, делая unittest, мне любопытно узнать, в чем разница между двумя ниже?какая разница при выполнении monkeyPatch и StubOutwithMock?

self.monkeyPatch(module, 'myFunc', lambda n: someObject) 

и

mox.StubOutWithMock(module, 'myFunc') 
module.myFunc(n).AndReturn(someObject) 

где MyFunc является публичной функцией в модуле, п аргумент передается MyFunc и возвращает SomeObject.

ответ

0

Просто разные библиотеки/реализации патчей обезьян.

Monkeypatching может быть выполнен без какой-либо библиотеки, но он имеет множество повторяющихся (и вроде бы уродливых) вещей, которые ему нужно делать, поэтому, если вы начнете реализовывать его самостоятельно, вы в конечном итоге создадите помощников, чтобы помочь с этим. И, естественно, есть пара готовых к использованию библиотек, чтобы сделать это за вас.