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  ```