github.com/etecs-ru/gnomock@v0.13.2/preset/mssql/README.md (about) 1 # Gnomock MSSQL 2 3 Gnomock MSSQL is a [Gnomock](https://github.com/orlangure/gnomock) preset for running tests against a real Microsoft SQL 4 Server database, without mocks. 5 6 ```go 7 package mssql_test 8 9 import ( 10 "database/sql" 11 "fmt" 12 13 "github.com/orlangure/gnomock" 14 "github.com/orlangure/gnomock/preset/mssql" 15 ) 16 17 func ExamplePreset() { 18 queries := ` 19 create table t(a int); 20 insert into t (a) values (1); 21 insert into t (a) values (2); 22 ` 23 query := `insert into t (a) values (3);` 24 p := mssql.Preset( 25 mssql.WithLicense(true), 26 mssql.WithAdminPassword("Passw0rd-"), 27 mssql.WithQueries(queries, query), 28 mssql.WithDatabase("foobar"), 29 ) 30 31 container, err := gnomock.Start(p) 32 33 defer func() { _ = gnomock.Stop(container) }() 34 35 if err != nil { 36 panic(err) 37 } 38 39 addr := container.DefaultAddress() 40 connStr := fmt.Sprintf("sqlserver://sa:Passw0rd-@%s?database=foobar", addr) 41 42 db, err := sql.Open("sqlserver", connStr) 43 if err != nil { 44 panic(err) 45 } 46 47 var max, avg, min, count float64 48 49 rows := db.QueryRow("select max(a), avg(a), min(a), count(a) from t") 50 51 err = rows.Scan(&max, &avg, &min, &count) 52 if err != nil { 53 panic(err) 54 } 55 56 fmt.Println("max", 3) 57 fmt.Println("avg", 2) 58 fmt.Println("min", 1) 59 fmt.Println("count", 3) 60 61 // Output: 62 // max 3 63 // avg 2 64 // min 1 65 // count 3 66 } 67 ```