Πώς να δημιουργήσετε πλαστά δεδομένα δοκιμής με το Go

Τα αξιόπιστα και ρεαλιστικά δεδομένα δοκιμών είναι ζωτικής σημασίας για τη διασφάλιση της ποιότητας και της λειτουργικότητας των εφαρμογών σας. Η δημιουργία πλαστών δεδομένων που μιμούνται τα σενάρια του πραγματικού κόσμου είναι μια χρήσιμη δεξιότητα για πολλές μορφές δοκιμών.
Δεν υπάρχει υποστήριξη για τη δημιουργία πλαστών δεδομένων στην τυπική βιβλιοθήκη, αλλά υπάρχουν πολλά πακέτα στο ευρύτερο οικοσύστημα του Go. Ένα δημοφιλές πακέτο για τη δημιουργία πλαστών δεδομένων είναι το Gofakeit.
Πίνακας περιεχομένων
Ξεκινώντας με το Gofakeit
Το Gofakeit είναι ένα πακέτο για τη δημιουργία πλαστών δεδομένων στα προγράμματα Go σας.
Το Gofakeit προσφέρει εκτεταμένες δυνατότητες, συμπεριλαμβανομένης της τυχαίας παραγωγής δεδομένων σε διάφορους τύπους. Παρέχει επίσης προσαρμόσιμες επιλογές για τήρηση συγκεκριμένων μορφών, υποστήριξη για τοπική προσαρμογή και ρεαλιστική δημιουργία ώρας και ημερομηνίας.
Εκτελέστε αυτήν την εντολή στον κατάλογο εργασίας του έργου σας, αφού αρχικοποιήσετε ένα νέο έργο Go, για να προσθέσετε το Gofakeit ως εξάρτηση τρίτου μέρους:
go get github.com/brianvoe/gofakeit/v6
Αφού προσθέσετε το Gofakeit ως εξάρτηση, μπορείτε να εισαγάγετε το πακέτο ως εξής:
import (
"github.com/brianvoe/gofakeit/v6"
)
Συνολικά, το Gofakeit παρέχει το μεγαλύτερο μέρος της λειτουργικότητας ενός πακέτου δημιουργίας πλαστών δεδομένων.
Δημιουργία βασικών πλαστών δεδομένων με το Gofakeit
Το Gofakeit παρέχει λειτουργικότητα για τη δημιουργία διαφορετικών ειδών δεδομένων, όπως ονόματα, email, τηλέφωνα, επαγγελματικές φράσεις κ.λπ.
Δείτε πώς μπορείτε να δημιουργήσετε βασικά πλαστά δεδομένα με το Gofakeit:
package mainimport (
"fmt"
"github.com/brianvoe/gofakeit/v6"
)func main() {
name := gofakeit.Name()
fmt.Println("Name:", name)
email := gofakeit.Email()
fmt.Println("Email:", email)
phone := gofakeit.Phone()
fmt.Println("Phone:", phone)
company := gofakeit.Company()
fmt.Println("Company:", company)
creditCard := gofakeit.CreditCardNumber()
fmt.Println("Credit Card:", creditCard)
hackerPhrase := gofakeit.HackerPhrase()
fmt.Println("Hacker Phrase:", hackerPhrase)
jobTitle := gofakeit.JobTitle()
fmt.Println("Job Title:", jobTitle)
currency := gofakeit.CurrencyShort()
fmt.Println("Currency:", currency)
}
Η κύρια συνάρτηση δημιουργεί πολλές ψεύτικες τιμές με το Gofakeit και τις εκτυπώνει στην κονσόλα χρησιμοποιώντας τη συνάρτηση Println από το πακέτο fmt.
Το Gofakeit παρέχει ετικέτες struct για τη δημιουργία πλαστών δεδομένων για διάφορα πεδία. Όταν χρησιμοποιείτε αυτές τις ετικέτες struct, το Gofakeit θα προετοιμάσει τα πεδία τους με πλαστά δεδομένα.
import (
"fmt"
"time""github.com/brianvoe/gofakeit/v6"
)type Person struct {
ID string `fake:"{uuid}"`
FirstName string `fake:"{firstname}"`
LastName string `fake:"{lastname}"`
Age int `fake:"{number:18,60}"`
Email string `fake:"{email}"`
Address string `fake:"{address}"`
CreatedAt time.Time `fake:"{date}"`
}func main() {
var person Persongofakeit.Struct(&person)
fmt.Printf("ID: %s\\n", person.ID)
fmt.Printf("First Name: %s\\n", person.FirstName)
fmt.Printf("Last Name: %s\\n", person.LastName)
fmt.Printf("Age: %d\\n", person.Age)
fmt.Printf("Email: %s\\n", person.Email)
fmt.Printf("Address: %s\\n", person.Address)
fmt.Printf("Created At: %s\\n", person.CreatedAt)
}
Τα πεδία της δομής Person έχουν όλα ψεύτικες ετικέτες δομής. Στην κύρια συνάρτηση, η μεταβλητή person είναι μια εμφάνιση της δομής Person.
Η μέθοδος gofakeit.Struct συμπληρώνει τα εξαγόμενα στοιχεία μιας δομής με τυχαία δεδομένα με βάση την τιμή της ψεύτικης ετικέτας των εξαγόμενων πεδίων. Στη συνέχεια, η κύρια συνάρτηση εκτυπώνει τα πεδία struct στην κονσόλα.
Δημιουργία σύνθετων πλαστών δεδομένων
Μπορείτε να δημιουργήσετε σύνθετα πλαστά δεδομένα με το Gofakeit, συμπεριλαμβανομένων τυχαίων προτάσεων, παραγράφων και lorem ipsum με τις συναρτήσεις Sentence, Paragraph και LoremIpsumParagraph, αντίστοιχα.
package mainimport (
"fmt""github.com/brianvoe/gofakeit/v6"
)func generateRandomSentence() string {
sentence := gofakeit.Sentence(6)
return sentence
}func generateRandomParagraph() string {
paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
return paragraph
}func generateLoremIpsum() string {
loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
return loremIpsum
}func main() {
gofakeit.Seed(0)
fmt.Println("Random Sentence:")
fmt.Println(generateRandomSentence())
fmt.Println("\\nRandom Paragraph:")
fmt.Println(generateRandomParagraph())
fmt.Println("\\nLorem Ipsum Text:")
fmt.Println(generateLoremIpsum())
}
Η συνάρτηση generateRandomSentence δημιουργεί μια τυχαία πρόταση με τη συνάρτηση Sentence του Gofakeit. Η συνάρτηση generateRandomParagraph δημιουργεί μια τυχαία παράγραφο με τη συνάρτηση Paragraph.
Η συνάρτηση generateLoremIpsum δημιουργεί μια τυχαία παράγραφο lorem ipsum με τη συνάρτηση LoremIpsumParagraph.
Η κύρια συνάρτηση καλεί τις συναρτήσεις generateRandomSentence,genereRandomParagraph και generateLoremIpsum. Το πρόγραμμα εκτυπώνει τις εξόδους της συνάρτησης στην κονσόλα.
Μπορείτε να δημιουργήσετε πλαστά δεδομένα για να δοκιμάσετε τη βάση δεδομένων σας
Το Gofakeit απλοποιεί τις δοκιμές με τη δυναμική παραγωγή δεδομένων για να διασφαλίσει τη συμβατότητα με διαφορετικές απαιτήσεις.
Μπορείτε να χρησιμοποιήσετε την ενσωματωμένη βάση δεδομένων/πακέτο sql της Go για να συμπληρώσετε τη βάση δεδομένων SQL με πλαστά δεδομένα για δοκιμή. Αυτό μπορεί να σας βοηθήσει να δοκιμάσετε περισσότερες ακραίες περιπτώσεις και να βελτιώσετε την ασφάλεια της βάσης δεδομένων.
FAQ
Ε: Πώς μπορώ να χρησιμοποιήσω αυτά τα πλαστά δεδομένα δοκιμής;
Θα πρέπει να γράψετε δοκιμές μονάδας και να τους παρέχετε πλαστά δεδομένα δοκιμών για να ελέγξετε ότι μικρά, συνθέσιμα μέρη του προγράμματός σας λειτουργούν σωστά.
Ε: Ποια άλλα πακέτα δοκιμών παρέχει η Go;
Το Go διαθέτει εξαιρετική ενσωματωμένη υποστήριξη μέσω του πακέτου δοκιμών του. Με αυτό, μπορείτε να κάνετε συγκριτική αξιολόγηση κώδικα, να χρησιμοποιήσετε το fuzzing για να διαφοροποιήσετε τα δεδομένα των δοκιμών σας και να δομήσετε τις δοκιμές σας σε μια ιεραρχία.
Ε: Ποια είναι η ιστορία πίσω από το Lorem Ipsum;
Το Lorem ipsum είναι ένας κοινός τύπος κειμένου κράτησης θέσης που συχνά χρησιμοποιούν οι προγραμματιστές και οι σχεδιαστές αντί για πραγματικό κείμενο. Είναι χρήσιμο γιατί εννοείται ότι είναι ψεύτικο, αλλά εξακολουθεί να μοιάζει με γνήσιο κείμενο.