我有一個Python類,它的__init__
方法引發了一個名爲WrongFileSpecified
的自定義異常。但是,當我編寫單元測試時,我想從測試夾具分配實例對象的屬性。所以通常我會做的是從文件中讀取數據,然後使用實例對象。通過__init__構造對象並忽略構造函數異常
但是通過測試,我無法使用任何測試文件,所以我基本上需要硬編碼單元測試的setUp
方法中的實例對象中的數據。有什麼辦法可以創建一個沒有__init__
抱怨異常的實例嗎?
樣品的編號:
class A(object):
def __init__(self, folderPath):
#check folder path using os.isdir() otherwise raise exception
#...
self.folderPath = folderPath
#Call load record
self._load_records() #uses self.folderPath and raises exceptions as well
#Note i cannot avoid raising these exceptions, its required
class TestA(unittest.TestCase):
.......
obj = None
def setUp(self):
obj = A('fake folder path')
obj.val1 = "testparam1"
obj.param2 = "testparam2"
def test_1(self):
.....
你爲什麼不動的邏輯從文件讀取數據到一個類的方法,所以你會打電話例如'MyClass的。from_file(whatever_file)'而不是'MyClass(whatever_file)'? – jonrsharpe
請發佈您的代碼,這聽起來像它將受益於重新設計,讓它是可測試的? – dm03514
不能發佈代碼抱歉不披露,但我會在幾分鐘內寫一個樣本版本 – user3413046