我使用Teststack.White启动并与GUI交互。 模型隐藏在外观后面,允许将测试模拟注入GUI。 GUI成功加载测试模拟和Teststack.White可以启动应用程序。
如何使用Teststack.White.Application或此类方法访问我的单例。
/*Singleton in Mock.DLL that will allow test configurations*/
class Hook
{
public Hook SingleHook { get; private set; } = new Hook();
private Hook() { }
}
/*Loader in Nunit so far*/
private Application apploader()
{
ProcessStartInfo info = new ProcessStartInfo(@"C:\MyGUI\MYWPFGUI.exe");
info.WorkingDirectory = (@"C:\MyGUI\");
TestStack.White.Application app = Application.Launch(info);
return app;
}
我目前正在调查使用AppDomains,但由于此应用程序在其赢得的过程中运行,我无法看到我将如何做到这一点。 我需要掌握Singleton才能设置和评估我的测试。
答案 0 :(得分:0)
您需要使用反射,第一步是使用Assembly.Load或Assembly.LoadFrom加载包含Hook类的程序集,然后使用Assembly.CreateInstance或Activator.CreateInstance或AppDomain.CreateInstanceAndUnwrap方法并传递Hook类类型,现在你不能从外部创建单例,然后调用CreateInstance来创建它,因为它有私有ctor,否则你需要使用其他方法,如来自Hook Singleton类型的GetMethod和Invoke来访问它的方法太麻烦了。
但是,我建议您将类创建为普通类并在Test应用程序中保存单例实例,因此请确保将Hook类标记为具有公共构造函数的公共类,并在Test项目中创建公共静态属性/变量使用反射保存创建的类,然后只需调用静态属性即可访问Test应用程序中任何位置的Singleton Hook类。
答案 1 :(得分:0)