请给这段代码写单元测试
时间: 2024-03-14 09:46:29 浏览: 46
代码单元测试方法及步骤
好的,以下是针对上面代码的单元测试:
```python
import unittest
from unittest.mock import patch
from stock_price import get_stock_price
class TestStockPrice(unittest.TestCase):
@patch('stock_price.yf.Ticker')
def test_get_stock_price(self, mock_ticker):
mock_stock = mock_ticker.return_value
mock_stock_info = {'regularMarketPrice': 100}
mock_stock.info = mock_stock_info
# 测试默认查询阿里巴巴股票价格
self.assertEqual(get_stock_price(), 100)
# 测试查询苹果股票价格
self.assertEqual(get_stock_price('AAPL'), 100)
if __name__ == '__main__':
unittest.main()
```
这段代码使用了 unittest 和 unittest.mock 来对 `get_stock_price` 函数进行单元测试。其中,使用 `@patch` 装饰器来模拟 `yf.Ticker` 对象,使得测试时不需要真正调用 Yahoo Finance API,而是返回我们预设的股票价格信息。测试分别针对默认查询阿里巴巴股票价格和查询苹果股票价格两种情况,确保函数能够正确返回股票价格。
阅读全文