I’m trying to unit test values that will eventually wind up in a web.config file. In my test project, I created an app.config file with a web.config section to hold the settings. In a normal situation, I would call System.Configuration.ConfigurationSettings.AppSettings, but in this case, that doesn’t work. I saw this question, which is very similar, but doesn’t address how to get the NameValueCollection out of the config file. Here is an example of the config file:
<?xml version='1.0' encoding='utf-8' ?> <configuration> <system.web> <membership defaultProvider='CustomMembershipProvider'> <providers> <clear/> <add name='CustomMembershipProvider' applicationName='SettlementInfo' enablePasswordRetrieval='false' enablePasswordReset='false' requiresQuestionAndAnswer='true' writeExceptionsToEventLog='true' /> </providers> </membership> </system.web> </configuration>
Has anyone dealt with this before?
I guess I’m confused here; it looks like you’re trying to test that ASP.NET is using your custom membership provider appropriately. Correct?
If so, I’m 99.999% sure that you cannot unit test this using the MS framework; you must integration test it by deploying it to the webserver (or running Cassini in VS) and typing a username/password into your login page.
Now, it’s possible I’ve misunderstood your request. If so, let me know and I’ll edit my answer accordingly.
Edit:
I need more than a comment to reply, so I’m editing. If I read you correctly, you are wanting to unit test your program to ensure that it deals with configuration correctly, yes? Meaning you want to ensure that your code grabs, for example, the correct AppSettings key and handles a null value therein, correct?
If that’s the case, you’re in luck; you don’t need an app.config or web.config at all, you can set the values you need as part of your test setup.
For example: