2012-10-15 8 views
5

To jest mój funkcji: functionoświadczenie Wyjątek nieobjęte self.assertRaises pyton jednostkowych przypadków testowych

def get_value(request, param): 
    s = get_string(request, param) 
    value = re.search('(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)', s) 
    if not value: 
    print 'match not found!' 
    raise Exception('incorrect format: %s' % param) 

Test:

def test_get_value(self): 
    m = test_mocks.HttpRequestMock(REQUEST = {'start_date': '2011.07.31'}) 
    print '*************************' 
    print 'date format changed' 
    self.assertRaises(Exception, get_value, (m, 'start_date')) 
    print '********************* 

get_value nie drukuje: mecz nie został znaleziony!

+0

dziękuje Brenowi za montaż. –

+1

Twój 'helpers.get_date_param' nazywa' get_value'? – Ian

+0

zmieniono połączenie ... zmieniłem nazwę funkcji, aby opublikować pytanie tutaj! –

Odpowiedz

3

Wygląda na to, że jest jakiś problem z wersją python. Domyślam się, że używasz Pythona poniżej wersji 2.6. Spróbuj przekazać parametry funkcji jako inne argumenty funkcji, tj. Nie umieszczaj ich wewnątrz krotki. Spróbuj tego.

self.assertRaises(Exception, helpers.get_value, m, 'start_date') 
+0

dzięki za wyjaśnienie ... zadziałało –

3

Jesteś przechodzącą argumenty do assertRaises() nieprawidłowo, należy przekazać je tak:

self.assertRaises(Exception, helpers.get_value, m, 'start_date') 

Oto pełna przypadek testowy, który pracuje dla mnie. Pierwszy test kończy się pomyślnie, a drugi kończy się niepowodzeniem.

import re 
from unittest import TestCase 

def get_value(s): 
    value = re.search('(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)', s) 
    if not value: 
     raise ValueError('incorrect format: %s' % s) 

class TesterScratch(TestCase): 
    # this one passes 
    def test_get_value(self): 
     s = '2011.07.31' 
     self.assertRaises(ValueError, get_value, s) 

    # this one fails, because the format is actually correct 
    def test_get_value2(self): 
     s = '2011-07-31' 
     self.assertRaises(ValueError, get_value, s) 
+0

Tak, dziękuję za pomoc! –

Powiązane problemy