单元测试非常新,所以这可能是非常简单的事情,但我不确定如何在函数中模拟自参数。
我想测试的函数:
class dataFeed:
def generateURL(self, ticker, days, period):
return "https://www.google.com/finance/getprices?i=" + str(period) + "&p=" + str(days) + "d&f=d,o,h,l,c,v&df=cpct&q=" + ticker
测试类:
import unittest
from dataFeed import dataFeed as df
class TestCases(unittest.TestCase):
def test(self):
self.assertEqual(df.generateURL("AAPL", 2, 5), "https://www.google.com/finance/getprices?i=5&p=2d&f=d,o,h,l,c,v&df=cpct&q=AAPL")
if __name__ == '__main__':
unittest.main()
我得到的输出是:
ERROR: test (__main__.TestCases)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\ian\Documents\Capstone\Components\testing.py", line 9, in test
self.assertEqual(df.generateURL("AAPL", 2, 5), "https://www.google.com/finance/getprices?i=5&p=2d&f=d,o,h,l,c,v&df=cpct&q=AAPL")
TypeError: unbound method generateURL() must be called with dataFeed instance as first argument (got str instance instead)
发布于 2014-04-30 04:46:33
您将需要创建dataFeed对象的一个实例并将其用于测试。
例如。
class TestCases(unittest.TestCase):
def test(self):
data_feed = dataFeed()
self.assertEqual(data_feed.generateURL("AAPL", 2, 5), "https://www.google.com/finance/getprices?i=5&p=2d&f=d,o,h,l,c,v&df=cpct&q=AAPL")
发布于 2018-06-27 05:08:30
看起来你的类方法可以成为静态的,因为它在实现中没有使用self参数。因此,只需将该方法设为静态,您就可以按原样使用您的TestCase类。
如果你的类方法不是静态的,看看virusbloom的答案。
https://stackoverflow.com/questions/23369588
复制相似问题