有没有办法告诉在执行期间是否从Silverlight单元测试框架程序集运行代码? (对于背景下,我希望创造一个NinjectModule 如果我们正在运行的单元测试工程将结合DomainClient到FakeDomainClient,但结合到WebDomainClient除外。)有没有办法判断某些代码是否在Silverlight单元测试框架内执行?
回答
这是一个有点粗糙,但一个可能性将从System.Windows.Application.Current.Host.Source测试其中一个属性(可能是LocalPath)。您需要测试宿主XAP文件是否来自您的测试项目的XAP,或者它是否是您的应用程序的XAP。这显然会对XAP文件名作出假设,这使得它变得有点脆弱(即使从名称空间派生出某些东西,XAP文件名在任何情况下都可以在项目属性中实际配置 - 所以不能保证它始终匹配)。
或者,你可以测试System.Windows.Application.Current.RootVisual的价值。同样,您当然需要记住,不能保证Silverlight单元测试框架的未来版本将使用相同的Microsoft.Silverlight.Testing.Client.TestPage(尽管将检查可能作为静态扩展方法用于例如,应用程序类至少意味着您可以根据需要在未来将更改限制在您的扩展方法中)。
另一种方法是使用HTML桥和测试从System.Windows.Browser.HtmlPage.Document.DocumentUri的属性之一。这看起来比前两个选项差,因为关于托管uris /页面名称的假设可能会比关于用于应用程序的特定UIElement或XAP文件的名称的假设更差。
根据各地XAP文件名或托管的网页名称的任何解决方案可能会需要依靠以公约为基础的名字在任何情况下,如你所要使用的技术,在多个模块/项目的测试。
一个更好的选择可能是使用System.Windows.Application.Current.Host.InitParams。您可能会在测试项目中的页面中传递特定的参数,并最终让您的代码测试该特定参数的值。这具有的优点是,它不需要任何特定的RootVisual或任何特定的命名约定用于XAP文件名或uri /页面名称。
的帮助!哇!谢谢你Derek!对我而言,如果我仍然需要这样做,第二种选择将是最好的。不过,我已经将我的单元测试策略转换为更多类似于下面的建议。如果我有一些时间,我会举一个例子说明你的建议可以如何完成。再次感谢! – 2010-11-29 20:49:51
最好的办法就是不要有由具有良好的设计,可以让你重新绑定DomainClient在测试中,而不是在你的产品代码应该使用哪个实例决定都知道这一点。这使您的生产代码免于测试代码,并减少奇怪异常的机会。
一个黑客将创建一个静态类,静态属性UnitTestRunning即默认为false,并在测试初始化设置为true,并在模块中读取。
嘿雷莫!我绝对同意你的看法,在我的测试中能够重新绑定DomainClient更好。我意识到我可以在代码中做到这一点,我相应地改变了它。谢谢你的建议! – 2010-11-29 20:50:31
- 1. 有没有办法检查代码是否在TransactionScope中执行?
- 2. 有没有办法判断所有验证器是否满足?
- 3. 有没有办法测试浏览器是否支持flash/silverlight?
- 4. 是否有单元测试xml以外的替代框架xmlunit?
- 5. 有没有办法判断x-sendfile是否已经启动?
- 6. 有没有办法判断是否显示软键盘?
- 7. 有没有办法判断一个活动是否开始?
- 8. 有没有办法判断ReactElement是否呈现“null”?
- 9. 有没有办法判断Safari是否全屏? (例如document.fullscreenElement)
- 10. 有没有办法进行单元测试unobstrusive jQuery的场景
- 11. 有没有办法判断sdcard是否已安装或根本没有安装?
- 12. 使用JSch,有没有办法判断一个远程文件是否存在,而不是执行ls?
- 13. 是否有可能使用基于Python的单元测试框架和运行器来测试C代码
- 14. Silverlight的单元测试框架重新运行测试
- 15. MSTest&Silverlight单元测试框架教程
- 16. 有没有办法在单元测试中覆盖处理器?
- 17. 有没有办法在Monotouch 4/Monodevelop中做单元测试?
- 18. 有没有办法判断Android MediaPlayer目前是否正在播放歌曲?
- 19. 如何判断代码是否在knitr/rmarkdown环境中执行?
- 20. 有没有办法判断有线耳机是否连接到手机
- 21. 有没有办法判断电子邮件是否有OneDrive附件?
- 22. 有没有办法判断宏展开是否会看到词法上下文?
- 23. 是否有办法强制执行@Test(enabled = false)测试?
- 24. 是否有GNU make的单元测试框架?
- 25. Orbeon中是否有单元测试框架?
- 26. 具有ms单元测试框架的单元测试实体框架
- 27. 有没有办法在内部执行php代码在沙箱中php
- 28. 有没有办法在Flutter单元测试中测试AppLifecycleState更改?
- 29. 有没有办法测试jqGrid是否有数据?
- 30. 有什么办法可以判断UIPickerView是否在旋转?
+1 NB我们不在帖子中写上“提前致谢”,我们赞扬 – 2011-02-08 23:27:56