เวลาจะ test ว่าอยากให้ function ที่เราเรียนมัน raise exception ตามที่เราต้องการหรือเปล่า ถ้าเป็น JUnit เราก็ใส่อะไรประมาณข้างล่างได้ (แค่ประมาณอาจจะเขียนไม่ถูก)
@expect(IOException)
void testFoo() {
….
}
แต่ว่าพอมาเป็น Python จะทำอย่างไร จากคำแนะนำจากคุณสุกรีที่ codenone ก็ได้แบบนี้ออกมา
def expect(expr): def decorator(f): def wrapper(*__args, **__kw): try: f() assert False except Exception, (e): assert type(e) != type(expr) return wrapper return decorator @expect(RuntimeError) def func1(): raise Exception func1()
เขียนแยกๆ ดิบดี พอเอาไปใช้กับ nose จริงๆ เจ๊ง -_-!.