flyingpie / windows-terminal-quake

Enable Quake-style dropdown for (almost) any application.
https://wtq.flyingpie.nl
MIT License
598 stars 39 forks source link

Interest in unit tests? #23

Closed webbertakken closed 4 years ago

webbertakken commented 4 years ago

Would you be interested in unit tests for this project?

Since I've not created many tests in c# before and I'd like to learn how to do it, I would be willing to contribute some.

Do you have a suggested approach or specific libraries you would use?

flyingpie commented 4 years ago

So I think that unit tests are a great thing, but I'm not sure of too many places in this particular app where things would get better adding them.

That's because most of the code directly calls into specific Win32 stuff, like moving windows and detecting global hot keys. These can be mocked out, but that makes the accuracy (and therefore usefulness) way lower.

The only thing that would be useful to test would be the settings parser, which only has a dependency on a file watcher, which is more reasonable to mock out.

If your goal is mainly to get some hands-on experience around unit testing, I'd be happy to give some pointers there, but I think that the bulk of the app is fairly unfriendly for unit testing. Stuff like integration tests would be more useful, but these are way harder to make.

webbertakken commented 4 years ago

Fair enough. I understand.

I'd take your general pointers and perhaps you know any c# projects where testing is done properly in your opinion?

Thank you!