這是我的僞類,我想測試:錯誤測試異常
class Meter:
def __init__(self, meterInfo):
self.b1pos = meterInfo['b1pos']
def setMeter(self):
print 'Initializing'
try:
print 'Connecting'
except IOError as message:
print message
def readSignal(self, ele_name):
try:
if ele_name in ("b1", "b2"):
readValue = 0.0
readValue1 = 0.0
return readValue, readValue1
else:
readValue = 0.0
readValue1 = 0.0
return readValue, readValue1
except IOError as message:
print message
這是我的單元測試:
class TestMeter(unittest.TestCase):
def testSetMeter(self):
m = meter.Meter({'b1pos': 'b1pos'})
self.assertRaises(IOError, m.setMeter())
def testReadSignal(self):
m = meter.Meter({'b1pos': 'b1pos'})
a, b = m.readSignal('b1')
self.assertTrue(isinstance(a, numbers.Number))
self.assertTrue(isinstance(b, numbers.Number))
self.assertRaises(IOError, m.readSignal('b1'))
if __name__ == '__main__':
unittest.main()
對於testSetMeter()我沒有任何問題,但對於testReadSignal()它給了我:「TypeError:'元組'對象不可調用」 我明白這個錯誤與radSignal的返回有關,但我該如何解決它? 我試着用:
def testReadSignal(self):
m = meter.Meter({'b1pos': 'b1pos'})
a, b = m.readSignal('b1')
self.assertTrue(isinstance(a, numbers.Number))
self.assertTrue(isinstance(b, numbers.Number))
with self.assertRaises(IOError):
m.readSignal('b1')
但是,這是輸出:
AssertionError: IOError not raised
你能告訴我們班萬用表? –
對不起,我在複印時輸入錯字,我改正了文字 – Joe
真正的問題是什麼?該函數捕捉異常,所以測試無法接收它。 – Efren