DATA-DOG/go-sqlmock

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

IvoGoman opened this issue · 3 comments

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:

if nil == e.args {
return nil
}

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.

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.

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

@fatelei could you have a look at #295