这是我第一次使用模拟测试套接字接口。我有一个调用_socket.sendto()
方法的类。我想测试是否引发了异常。
class socketUDP(object):
def __init__(self, host="127.0.0.1", port=2003):
self.host = host
self.port = port
self._socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def send(self, metric, value):
message = "%s %f\n" % (metric, value)
try:
self._socket.sendto(
message, (self.host, self.port))
except Exception, e:
# I would like to test if this exception is raised
print "Could not relay data: %s" % e
更新:
我正在为send方法编写一些单元测试,我想做的其中一个测试是查看是否引发了异常
答案 0 :(得分:1)
如果tar
方法捕获异常,这将非常困难。您可以尝试monkey-patching the socket.send()
method,但这是最好的解决方案。在我看来,在这种情况下,您需要测试实现细节而不是对接口的一致性,这是一个值得怀疑的策略。
如果send()
方法未捕获异常,则可以使用assertRaises()
。