我们目前正在运行rspec测试,以检查要加载的特定库/模型。具体地说,我们想测试一下,当创建一个对象时,我们会得到正确的Watir对象: Watir::Browser用于FF和Chrome,Watir::Safari用于Safari。
我们已经尝试过这样做:Unload a ruby class,但它只是删除了常量,这不是我们想要的。
通常情况下,这不是问题,但由于与safariwatir和watir-webdriver的兼容性问题,情况并非如此。
superclass mismatch for class UnknownObjectException要“修复”这个问题,我们基本上必须选择加载哪个webdriver (因此是原始逻辑--我们计划测试它)。
有没有办法解决这个问题?我们的测试通过了,而不仅仅是作为一个整体运行。因此,我们基本上必须跳过一个步骤来绕过请求问题。
发布于 2012-03-24 14:51:45
新的Anser: NEWS FLASH webdriver现在支持Safari!抛弃safariwatir,使用webdriver来完成所有这些工作。我今天在Test Automation Bazaar上发现了这一点,所以没有太多细节。我希望在接下来的一周左右,一旦人们从会议中恢复过来,就会看到来自Watir社区的一些关于这方面的博客帖子。
更新:有关如何使用Safari的详细信息,请参阅watir-webdriver blog
发布于 2012-03-23 11:27:26
Ruby中的类是对象,但类是“每次执行一个/对象空间”的概念只存在,因为Ruby类对象被赋值为常量。
因为您的类是用剧院模块命名的,所以您可以动态检查对象的类型。如果这还不够,您可以使用duck type。由于您提到了兼容性问题,有一些方法存在于一个方法而不存在于另一个方法(您可以对其进行测试),或者有一些方法为每个方法返回不同的值(您可以对其进行测试)。
发布于 2012-03-23 12:00:02
当我需要'watir‘gem时,我通过使用条件逻辑处理了类似的事情,因此根据环境的配置,最终只需要一个版本。我可以稍后提供更多细节,也许在watir测试自动化集市结束后,我有一点时间为您思考和挖掘一些代码样本。
https://stackoverflow.com/questions/9832300
复制相似问题