DATA-DOG / go-sqlmock

Sql mock driver for golang to test database interactions
Other
6.16k stars 407 forks source link

Unexpected result of argument matcher if no args expected but args supplied #292

Closed IvoGoman closed 2 years ago

IvoGoman commented 2 years ago

Issue

Query is created dynamically in the code. Sometimes it will expect an arg and sometimes it won't. I expected that the mock would raise an error if the expectation is no query args but actually one is supplied.

Reproduction steps

https://go.dev/play/p/VwF9k6KlET2

Expected Result

Unexpected error ... arguments do not match: expected 0, but got 1 arguments

Actual Result

No error, expectations are met

Locally I have fixed this by removing: https://github.com/DATA-DOG/go-sqlmock/blob/fd316ea51261e47e4f20169cce71baee8dd21d91/expectations_go18.go#L32-L34

I expected that the mock should catch if an unexpected argument is passed. Be it on the mock or on the actual query in the productive code.

IvoGoman commented 2 years ago

If you feel like this is valid, then I am willing to open a PR with the mentioned fix. I saw some tests will need to be fixed.

fatelei commented 2 years ago

If you feel like this is valid, then I am willing to open a PR with the mentioned fix. I saw some tests will need to be fixed.

do it, wait for you pr

IvoGoman commented 2 years ago

@fatelei could you have a look at #295