Si vous souhaitez créer le côté contrôle pour le moment, vous pouvez reporter la création du modèle.
test_login.py
import unittest
class TestLoginMethod(unittest.TestCase)
def test_login_returns_true(self):
m = mox.Mox()
user = m.CreateMockAnything() #Intention de créer une classe de modèle utilisateur dans le futur
user.account().AndReturn("norobust") #Renvoyer le nom du compte pour le moment
l = Login() #Classe de connexion à développer
l.user = user #Passer une maquette pour qu'elle puisse être référencée à partir de la classe Login
m.ReplayAll() #commence mox!
self.assertTrue(l.login()) #Test de connexion!
m.VerifyAll() #contrôle des résultats mox!
VerifyAll avec mox pour vérifier si la méthode que vous avez configurée (user.account () dans ce cas) a été appelée.
Lorsque le test ci-dessus est terminé et que la classe User est terminée, arrêtez CreateMockAnything et Faites-le simplement m.CreateMock (User).
Dans le cas ci-dessus, c'est comme
l.user = user```, mais en fait écrivez quelque chose comme
self.user = get_user_by_id (1) `` dans Login.login (). Je pense que vous obtiendrez un modèle d'utilisateur. Si get_user_by_id est vraiment appelé, vous ne pouvez pas transmettre la maquette utilisateur que vous avez créée. Dans ce cas, au lieu de vous moquer de la classe Login, il vous suffit de stub get_user_by_id ().
test_login.py
import unittest
class TestLoginMethod(unittest.TestCase)
def test_login_returns_true(self):
m = mox.Mox()
user = m.CreateMockAnything() #Modèle utilisateur que je n'ai pas encore créé ...
user.account().AndReturn("norobust") #Renvoyer le nom du compte pour le moment
l = Login() #Classe de connexion à développer
m.StubOutWithMock(Login, 'get_user_by_id') #Stubbing
Login.get_user_by_id().AndReturn(user) #Définir la valeur de retour de la fonction stubisée
m.ReplayAll() #commence mox!
self.assertTrue(l.login()) #Test de connexion!
m.VerifyAll() #contrôle des résultats mox!
Recommended Posts