"this is another opportunity to introduce dependency inversion where the tests can inject an alternate Run method for a tool. That will enable the tests to validate the correct args are passed based on the current config.
It also allows removal of test-environment-specific code from the product code. " - David
"Agree, this is a good idea and great feedback (I'd become a bit stuck on approach here). I've entered an issue to refactor this package. We've been asked to add SSMS support as well, so when I do that, I'll also refactor with the appropriate interfaces to enable DI here." - Stuart
We need a better way of unit testing the sqlcmd code to launch 3rd party UI tools, like ADS and SSMS.
Comment from code reviews:
"this is another opportunity to introduce dependency inversion where the tests can inject an alternate Run method for a tool. That will enable the tests to validate the correct args are passed based on the current config. It also allows removal of test-environment-specific code from the product code. " - David
"Agree, this is a good idea and great feedback (I'd become a bit stuck on approach here). I've entered an issue to refactor this package. We've been asked to add SSMS support as well, so when I do that, I'll also refactor with the appropriate interfaces to enable DI here." - Stuart