我有一個關於unittest的問題。 如何進行測試以查看是否有異常? 一個例子:如何測試是否在單元測試中出現異常
基準(3,32,2012)
如果我叫類基準像這樣,在一個月不在範圍內(> 31),這一切就OK了,它拋出一個異常,那OK 。但是我想做一個單元測試,如果異常是好的,如果是捕獲一個異常確定..? 我做了一些測試,但這些只有真正的價值觀,他們沒事。我不知道如何測試這種方式..並在互聯網上搜索.. 感謝您的答覆。
import date,datetime
class Datum():
def __init__(self,day,month,year):
try:
d=int(day)
dvm=stevilodnivmesecu(month,year)
if (d>=1 and d<=dvm):
self.d=d
else:
raise Exception("Day out of moth range")
except:
raise ValueError("Day is not a number")
try:
m=int(month)
if m>=1 and m<=12:
self.m=m
else:
raise Exception("Month out of range")
except:
raise ValueError("Month is not a number")
try:
l=int(year)
if l>=1000 and l<=9999:
self.l=l
else:
raise Exception("Year is out of range")
except:
raise ValueError("Year is not a number")
def __repr__(self):
return repr(self.d)+"."+repr(self.m)+"."+repr(self.l)
def monthrange(month,year):
if month==2:
if jeprestopno(year)==True:
return 29
elif jeprestopno(year)==False:
return 28
elif month>=1 and month<=7:
if month%2!=0:
return 31
elif month>7 and month<=12:
if month%2==0:
return 31
elif month>=1 and month<=7:
if month%2==0:
return 30
elif month>7 and month<=12:
if month%2!=0:
return 30
else:
pass
def oneplusyear(year):
if year%4==0 or (year!=100 and year%4==0) or (year%400==0 and year%100==0):
return True
else:
return False
您在這裏的異常處理非常廣泛。 Bare「except」是非常危險的,你一次只用4個語句來查看一個字符串是否不能轉換爲int。 – 2012-01-09 19:25:33
我如何檢查範圍? – greg 2012-01-09 20:07:10