所以,我有一個函數構造一個巨大的稀疏矩陣。功能的結構是這樣的:如何寫python unittest函數返回巨大的稀疏矩陣
def return_matrix():
for i in range(i_res):
for j in range(j_res):
if i == 0 and j == 0:
# code that adds value to sparse matrix
elif (i == 1 and j==1) or (i==i_res-1 and j==j_res-1):
# code that adds value to sparse matrix
#and so on
所以這個函數基本上是elif語句的長鏈。
在這種情況下編寫unittest的正確方法是什麼?
每個'elif'都可以調用一個不同的函數來執行它的處理(當前代碼中#s之後的是什麼),然後你的單元測試將對該函數起作用並測試它的行爲:如果有效值,則無效值,最小值/最大值等。 – boardrider
但是我可以在排列elifs中的單行函數時出錯。即雖然我的每個小函數都會通過測試,但我的主要return_matrix函數會產生錯誤的結果。 –
您可以將'elif's更改爲'if's,這會使它們彼此獨立,從而可以減少由於排序錯誤而導致錯誤的機會。 – boardrider