2013-10-02 14 views
5

Wie kann ich feststellen, dass ein Attribut auf einem Mock und/oder einem MagicMock zugegriffen wurde?Assert-Attribut auf Mock-Instanz wurde zugegriffen

Zum Beispiel

from unittest.mock import MagicMock 

def foo(x): 
    a = x.value 

m = MagicMock() 
foo(m) 
m.attr_accessed('value') # method that does not exist but I wish did; should return True 

Was ist eine tatsächliche Möglichkeit zu überprüfen, dass foom.value zuzugreifen versucht?

Antwort

6

Sie können PropertyMock wie beschrieben here verwenden.

z.B.

from unittest.mock import MagicMock, PropertyMock 

def foo(x): 
    a = x.value 

m = MagicMock() 
p = PropertyMock() 
type(m).value = p 
foo(m) 
p.assert_called_once_with() 
Verwandte Themen