我正在使用 python 的內置單元測驗工具:unittest
class MyClass:
def a():
# some operations
self.spark = SparkSession.builder.config(xxxx).getOrCreate()
我該如何測驗這種方法?
由于a()直接呼叫 SparkSession 方法。我將如何測驗它?
uj5u.com熱心網友回復:
用來unittest.mock.patch修補SparkSession。這是一個獨立的單檔案示例,它盡可能地遵循您的示例代碼并產生一個通過的pytest結果:
SparkSession = None
class MyClass:
def a(self):
# some operations
self.spark = SparkSession.builder.config('xxxx').getOrCreate()
from unittest.mock import patch
@patch('test.SparkSession')
def test_myclass_a(mock_spark_session):
MyClass().a()
請注意,如果我沒有修補SparkSession,呼叫MyClass().a()將引發一個AttributeErrorsince SparkSessionis else None。
MyClass在我創建的檔案中定義,test.py所以我打了補丁'test.SparkSession';您應該在被測模塊而不是測驗模塊中對其進行修補。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/447686.html
標籤:Python 单元测试 pyspark python-unittest
