2017-05-22 1 views
-1

Ich mag würde einige Tests für den folgenden Code schreiben:Mocking einen Rückgabewert, der ein Objekt

def person_name_length(id): 
    person = get_person(id) 
    return len(person.first_name) 

Wie kann ich get_person(id) Methode verspotten, so dass es ein Objekt zurückgibt, die einen Wert für first_name hat Eigentum?

In Code:

@patch('get_person') 
def test_person_name_length(self, get_person_mock): 
    get_person_mock.return_value = # what goes here??? calling .first_name on it should return 'Bob' 
    self.assertEqual(person_name_length(1), 3) 

Antwort

1

Ich denke, man sollte so etwas wie dieses

class MockPersion(object): 
    first_name = 'Bob' 


@patch('get_person') 
def test_person_name_length(self, get_person_mock): 
    get_person_mock.return_value = MockPersion() 
    self.assertEqual(person_name_length(1), 3) 
tun müssen
Verwandte Themen