关于python:如何测试抛出异常的函数

How to test functions that throw exceptions

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do you test that a Python function throws an exception?

我必须做白盒和黑盒测试,所以我想知道如何测试一个能控制异常的函数,比如这个函数

1
2
3
4
5
6
7
8
9
10
11
12
class validator_client():

    def validate_client(self,client):
        erori=[]
        if client.get_identitate()=="":
            erori.append("Nu exista ID!")
        if client.get_nume()=="":
            erori.append("Nu exista nume!")
        if (client.get_filme_inchiriate()!="da" ) and (client.get_filme_inchiriate()!="nu") :
            erori.append("Campul 'Filme inchiriate' completat gresit!")
        if len(erori)>0:
            raise ValidatorException(erori)

我读过一些关于assertrises()的内容,但是我不能用这个方法导入模块,在stackowerflow上找到了这个:

1
2
3
4
5
6
7
8
9
from testcase import TestCase

import mymod

class MyTestCase(TestCase):
    def test1(self):
        self.assertRaisesWithMessage(SomeCoolException,
                                     'expected message',
                                      mymod.myfunc)

但我不能让它工作。


这是一个工作示例,它是您将在python文档中找到的简化版本。它检查random.shuffle是否引发TypeError异常。

1
2
3
4
5
6
7
import random, unittest

class TestSequenceFunctions(unittest.TestCase):
    def test_shuffle(self):
        self.assertRaises(TypeError, random.shuffle, (1,2,3))

unittest.main()