I want to do some unit testing on one of my projects. This is a web project, and there will only be one copy of this program running aside from development copies.
I want to write some unit tests that will use the web.config
. I understand that ordinarily, a tester would stub out this external dependency because he wants to test the code without the test depending on the web.config
holding certain values.
However, the web.config
in my project is supposed to always hold certain values and I want to have a unit test that will fail if they are set to invalid values. For example, one of the values is a SQL connection string.
I want to write a test that will read the connection string from the web.config
. I envision that the test could connect to a server with the connection string and perhaps perform a very simple command like SELECT system_user;
. If the command executes successfully and returns something the test passes. Otherwise, it fails. I want the connection string to be read from the web.config
in the project I'm testing.
Of course, the ConfigurationManager
will not ordinarily look for a web.config
in another project. I could manually copy the web.config
from the original project to the test project, but I would have to do that before every test and there is no way I could count on anyone else to do that.
How do I make my test project read the web.config
from another project?