在此类中测试这个"setUp()"函数的正确方法是什么?



这是从书L赚取算法交易-Sebastien Donadio和Sourav Ghosh

src完整代码>gt;https://github.com/PacktPublishing/Learn-Algorithmic-Trading/tree/master/Chapter7

我应该测试

TradingStrategy.py

使用此

TradingStrategy_ut.py

TradingStrategy_ut.py我必须调用setUp((函数来初始化TradingStrategy类

class TestMarketSimulator(unittest.TestCase):
def setUp(self):
self.trading_strategy= TradingStrategy()

我试过了,但我不明白如何使其工作,因为TradingStrategy.py文件中的TradingStrategy需要3个参数。

class TradingStrategy:
def __init__(self, ob_2_ts, ts_2_om, om_2_ts):
self.orders = []
self.order_id = 0
self.position = 0
self.pnl = 0
self.cash = 10000
self.current_bid = 0
self.current_offer = 0
self.ob_2_ts = ob_2_ts
self.ts_2_om = ts_2_om
self.om_2_ts = om_2_ts

每次调用setUp((函数时,我都会出现以下错误:

x = TestMarketSimulator()
x.setUp()

Traceback (most recent call last):
File "TradingStrategy_ut.py", line 72, in <module>
x.setUp()
File "TradingStrategy_ut.py", line 9, in setUp
self.trading_strategy= TradingStrategy()
TypeError: __init__() missing 3 required positional arguments: 'ob_2_ts', 'ts_2_om', and 'om_2_ts'

解决方案

python3-m单元测试TradingStrategy_ut.py

以及:编辑TradingStrategy.py

在每个参数后添加

class TradingStrategy:
def __init__(self, ob_2_ts=None, ts_2_om=None, om_2_ts=None): 
self.orders = []
self.order_id = 0
self.position = 0
self.pnl = 0
self.cash = 10000
self.current_bid = 0
self.current_offer = 0
self.ob_2_ts = ob_2_ts
self.ts_2_om = ts_2_om
self.om_2_ts = om_2_ts

最新更新