You've already forked go-sqlxmock
							
							
				mirror of
				https://github.com/zhashkevych/go-sqlxmock.git
				synced 2025-10-30 23:27:38 +02:00 
			
		
		
		
	update readme and check with linters
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| language: go | ||||
| sudo: false | ||||
|  | ||||
| go: | ||||
|   - 1.2 | ||||
|   - 1.3 | ||||
| @@ -9,6 +10,4 @@ go: | ||||
|   - tip | ||||
|  | ||||
| script: | ||||
|   - go get -t | ||||
|   - go test -v | ||||
|   - go test -race | ||||
|   | ||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| The three clause BSD license (http://en.wikipedia.org/wiki/BSD_licenses) | ||||
|  | ||||
| Copyright (c) 2013-2015, DataDog.lt team | ||||
| Copyright (c) 2013-2016, DATA-DOG team | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
|   | ||||
							
								
								
									
										23
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								README.md
									
									
									
									
									
								
							| @@ -3,25 +3,22 @@ | ||||
|  | ||||
| # Sql driver mock for Golang | ||||
|  | ||||
| This is a **mock** driver as **database/sql/driver** which is very flexible and pragmatic to | ||||
| manage and mock expected queries. All the expectations should be met and all queries and actions | ||||
| triggered should be mocked in order to pass a test. The package has no 3rd party dependencies. | ||||
| **sqlmock** is a mock library implementing [sql/driver](https://godoc.org/database/sql/driver). Which has one and only | ||||
| purpose - to simulate any **sql** driver behavior in tests, without needing a real database connection. It helps to | ||||
| maintain correct **TDD** workflow. | ||||
|  | ||||
| **NOTE:** regarding major issues #20 and #9 the **api** has changed to support concurrency and more than | ||||
| one database connection. | ||||
|  | ||||
| If you need an old version, checkout **go-sqlmock** at gopkg.in: | ||||
|  | ||||
|     go get gopkg.in/DATA-DOG/go-sqlmock.v0 | ||||
|  | ||||
| Otherwise use the **v1** branch from master which should be stable afterwards, because all the issues which | ||||
| were known will be fixed in this version. | ||||
| - this library is now complete and stable. (you may not find new changes for this reason) | ||||
| - supports concurrency and multiple connections. | ||||
| - does not require any modifications to your source code. | ||||
| - the driver allows to mock any sql driver method behavior. | ||||
| - has strict by default expectation order matching. | ||||
| - has no vendor dependencies. | ||||
|  | ||||
| ## Install | ||||
|  | ||||
|     go get gopkg.in/DATA-DOG/go-sqlmock.v1 | ||||
|  | ||||
| Or take an older version: | ||||
| If you need an old version, checkout **go-sqlmock** at gopkg.in: | ||||
|  | ||||
|     go get gopkg.in/DATA-DOG/go-sqlmock.v0 | ||||
|  | ||||
|   | ||||
| @@ -3,8 +3,6 @@ package sqlmock | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/jinzhu/gorm" | ||||
| ) | ||||
|  | ||||
| type void struct{} | ||||
| @@ -22,33 +20,6 @@ func ExampleNew() { | ||||
| 	mock.ExpectBegin().WillReturnError(fmt.Errorf("an error will occur on db.Begin() call")) | ||||
| } | ||||
|  | ||||
| func ExampleNewWithDSN() { | ||||
| 	_, mock, err := NewWithDSN("mydsn for gorm") | ||||
| 	if err != nil { | ||||
| 		fmt.Println("expected no error, but got:", err) | ||||
| 		return | ||||
| 	} | ||||
| 	// use the same dsn to initialize a connection | ||||
| 	db, err := gorm.Open("sqlmock", "mydsn for gorm") | ||||
| 	if err != nil { | ||||
| 		fmt.Println("expected no error from gorm, but got:", err) | ||||
| 		return | ||||
| 	} | ||||
| 	defer db.Close() | ||||
| 	db.SetLogger(void{}) // sad - nil panics | ||||
|  | ||||
| 	// now we can expect operations performed on db | ||||
| 	mock.ExpectBegin().WillReturnError(fmt.Errorf("an error will occur on db.Begin() call")) | ||||
|  | ||||
| 	txconn := db.Begin() | ||||
| 	for _, err := range txconn.GetErrors() { | ||||
| 		fmt.Println(err.Error()) | ||||
| 	} | ||||
|  | ||||
| 	// Output: `sqlmock` is not officially supported, running under compatibility mode. | ||||
| 	// an error will occur on db.Begin() call | ||||
| } | ||||
|  | ||||
| func TestShouldOpenConnectionIssue15(t *testing.T) { | ||||
| 	db, mock, err := New() | ||||
| 	if err != nil { | ||||
|   | ||||
| @@ -73,7 +73,7 @@ func TestQueryExpectationSqlMatch(t *testing.T) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func ExampleExpectExec() { | ||||
| func ExampleExpectedExec() { | ||||
| 	db, mock, _ := New() | ||||
| 	result := NewErrorResult(fmt.Errorf("some error")) | ||||
| 	mock.ExpectExec("^INSERT (.+)").WillReturnResult(result) | ||||
|   | ||||
							
								
								
									
										19
									
								
								sqlmock.go
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								sqlmock.go
									
									
									
									
									
								
							| @@ -1,13 +1,12 @@ | ||||
| /* | ||||
| Package sqlmock provides sql driver connection, which allows to test database | ||||
| interactions by expected calls and simulate their results or errors. | ||||
| Package sqlmock is a mock library implementing sql driver. Which has one and only | ||||
| purpose - to simulate any sql driver behavior in tests, without needing a real | ||||
| database connection. It helps to maintain correct **TDD** workflow. | ||||
|  | ||||
| It does not require any modifications to your source code in order to test | ||||
| and mock database operations. It does not even require a real database in order | ||||
| to test your application. | ||||
| and mock database operations. Supports concurrency and multiple database mocking. | ||||
|  | ||||
| The driver allows to mock any sql driver method behavior. Concurrent actions | ||||
| are also supported. | ||||
| The driver allows to mock any sql driver method behavior. | ||||
| */ | ||||
| package sqlmock | ||||
|  | ||||
| @@ -80,12 +79,12 @@ type sqlmock struct { | ||||
| 	expected []expectation | ||||
| } | ||||
|  | ||||
| func (s *sqlmock) open() (*sql.DB, Sqlmock, error) { | ||||
| 	db, err := sql.Open("sqlmock", s.dsn) | ||||
| func (c *sqlmock) open() (*sql.DB, Sqlmock, error) { | ||||
| 	db, err := sql.Open("sqlmock", c.dsn) | ||||
| 	if err != nil { | ||||
| 		return db, s, err | ||||
| 		return db, c, err | ||||
| 	} | ||||
| 	return db, s, db.Ping() | ||||
| 	return db, c, db.Ping() | ||||
| } | ||||
|  | ||||
| func (c *sqlmock) ExpectClose() *ExpectedClose { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user