Maison >développement back-end >Golang >Comment se moquer des méthodes Struct dans les cas de test Go sans interfaces ?
Méthodes de structure moqueuses dans les cas de test Go
Dans Go, les appels de méthode moqueuse d'une structure peuvent être réalisés sans introduire d'interfaces dans le code source . Voici comment procéder :
Se moquer d'un exemple de structure et d'une méthode
Considérez la structure et la méthode suivantes :
type A struct {} func (a *A) perfom(string){ ... ... .. }
Se moquer des cas de test
Pour se moquer de la méthode perform pour le test cases :
type Performer interface { perform(string) }
type AMock struct {} func (a *AMock) perform(string) { // Mocked behavior } type A struct {} func (a *A) perform(string) { // Real implementation }
func invoke(url string, p Performer) { out := p.perfom(url) ... ... }
func TestInvokeWithMock(t *testing.T) { var amok = &AMock{} invoke("url", amok) // Verify mock behavior (e.g., assert it was called with the correct argument) }
func TestInvokeWithReal(t *testing.T) { var a = &A{} invoke("url", a) // No need for verification since it's the real implementation }
Autres options
Bibliothèques comme [testify/mock](https://godoc.org/github.com/stretchr/testify/mock) offrent des capacités de simulation encore plus robustes, vous permettant de contrôler le comportement simulé et de vérifier les appels de méthode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!