我仍然不是100%明确的嘲笑/树桩vs简单的猴子修补?
对于python,为什么我们不总是只猴子补丁呢?
以下示例
a) mockBinanceConn是一个神奇的mock-返回值存根(我们可以用monkey-patch代替mock)
b) analyticService.triggerCalculator下面是猴子补丁,使用简单的lambda非常方便
问题是,为什么我们不总是猴子补丁?对于下面的例子,我可以看到mock的一个优点-您不需要构造“mockBinanceConn”。在
@patch('Market.Crypto.binance.BinanceConnector')
def testAnalyticService_RunAlgo_BACKTEST(self, mockBinanceConn):
mockBinanceConn.getTrades.return_value = self.dummyTrades
mockBinanceConn.getOrderBook.return_value = self.dummyOrderBook
self.mktService.marketConn[mktAccess.MarketAccessService.PROVIDER_BINANCE] = mockBinanceConn
strategies = self.dao.getStrategies()
self.mktService.reloadMarketData(strategies)
# monkey patch analyticService to speed up test (We're not testing Algo here)
dummyTriggerCalculator = lambda mode, cob, strategyId, instrumentId, testId : 1
self.analyticService.triggerCalculator = dummyTriggerCalculator
self.analyticService=.calcPnl()
目前没有回答
相关问题 更多 >
编程相关推荐