blackbeam / rust-mysql-simple

Mysql client library implemented in rust.
Apache License 2.0
665 stars 145 forks source link

Mocking via a fake impl of GenericConnection #113

Open tomc1998 opened 7 years ago

tomc1998 commented 7 years ago

Hey!

I'm trying to create a 'mock connection', which will let me pass a function a fake mysql connection and instead of reading an actual database, will just return fake data and record the SQL queries. This is to make unit tests run faster (i.e. not have to have actual database access)

However, the GenericConnection trait requires that I return Stmt, QueryResult objects etc which cannot be created without a real connection.

I was just wondering your thoughts on a better API for this kind of thing. Could we expose a new() method on Stmt, do you think? Or, have the GenericConnection methods return trait objects / enums with a fake value?

I wasn't sure of the best way of going about this, as I don't know the internals of the library all too well. A penny for your thoughts?

Thanks!

blackbeam commented 7 years ago

Hi. I've just generalized GenericConnection more in 60feec2, but i'm not sure it'll really work for you. Could you please try it yourself (this change is in mocking branch)?

westy92 commented 1 year ago

What's the latest on this? It looks like GenericConnection has been removed.