J'essaie de tester une unité qui appelle d'autres fonctions du récepteur dans cette structure.Réception de fonctions du récepteur dans Go
Disons que je veux tester trois() et se moquer de l'appel à deux() dans les domaines suivants:
type MyStruct struct {
a string
b string
}
func (m *MyStruct) one() int {
return 2
}
func (m *MyStruct) two() int {
return m.one() * 2
}
func (m *MyStruct) Three() int {
return m.two() * 2
}
je méthode suivante deux des answer suivantes.
J'ai créé un constructeur personnalisé pour chaque fonction que je voulais tester et remplacer ces méthodes avec des versions simulées. Mais je pensais qu'il ne serait pas facile de maintenir le code une fois que le nombre de fonctions augmenterait.
Y a-t-il un moyen préféré de se moquer de ces fonctions? Je souhaite que la documentation officielle ait quelques directives sur la façon de se moquer des choses dans différents scénarios, similaire à ce que mox fournit sur Python.
Notez également que je ne souhaite pas utiliser une bibliothèque de simulation tierce.
Pourquoi s'embêter? Je pense qu'un test unitaire par méthode est plus que suffisant. Pensez à un test unitaire sur la méthode "Trois" comme un mini test d'intégration. – jmaloney
C'est exactement ce que j'essaie de faire. Je veux me moquer de tous ces appels, car je ne fais que tester la fonctionnalité d'une fonction particulière.La fonction "Trois" pourrait être n'importe quelle fonction ici. Ce n'est pas nécessairement un test intégré. – mohi666
Pourquoi * Je ne souhaite pas utiliser une bibliothèque de simulation de tierce partie *? 'unittest.mock' était une bibliothèque tierce jusqu'à python3.2 et dans python2.7 vous devez toujours l'installer par' pip'. –