KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have some methods in the code base that rely on Application.Current.Dispatcher.Invoke... to make sure things run on the GUI thread. I am currently trying to write unit tests for these methods but (as expected) Application.Current is null so I'm getting a NullReferenceException. I tried to run the affected tests in their own AppDomain as suggested here: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/786d5c06-0511-41c0-a6a2-5c4e44f8ffb6/ But Application.Current is still null when I do that. Shouldn't starting up an AppDomain set the Application.Current for me? Why is it still null? My code: The base class: [TestClass()] [Serializable] public class UnitTest { protected void ExecuteInSeparateAppDomain(string methodName) { AppDomainSetup appDomainSetup = new AppDomainSetup(); appDomainSetup.ApplicationBase = Environment.CurrentDirectory; AppDomain appDomain = AppDomain.CreateDomain(methodName, null, appDomainSetup); try { appDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { throw e.ExceptionObject as Exception; }; UnitTest unitTest = appDomain.CreateInstanceAndUnwrap(GetType().Assembly.GetName().Name, GetType().FullName) as UnitTest; MethodInfo methodInfo = unitTest.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance); if (methodInfo == null) { throw new InvalidOperationException(string.Format("Method '{0}' not found on type '{1}'.", methodName, unitTest.GetType().FullName)); } try { methodInfo.Invoke(unitTest, null); } catch (System.Reflection.TargetInvocationException e) {
Tags (comma-separated)
Save Edits
Cancel