首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ruby/rspec中卸载'require‘?

如何在ruby/rspec中卸载'require‘?
EN

Stack Overflow用户
提问于 2012-03-23 07:58:03
回答 3查看 613关注 0票数 4

我们目前正在运行rspec测试,以检查要加载的特定库/模型。具体地说,我们想测试一下,当创建一个对象时,我们会得到正确的Watir对象: Watir::Browser用于FF和Chrome,Watir::Safari用于Safari。

我们已经尝试过这样做:Unload a ruby class,但它只是删除了常量,这不是我们想要的。

通常情况下,这不是问题,但由于与safariwatir和watir-webdriver的兼容性问题,情况并非如此。

代码语言:javascript
复制
superclass mismatch for class UnknownObjectException

要“修复”这个问题,我们基本上必须选择加载哪个webdriver (因此是原始逻辑--我们计划测试它)。

有没有办法解决这个问题?我们的测试通过了,而不仅仅是作为一个整体运行。因此,我们基本上必须跳过一个步骤来绕过请求问题。

EN

回答 3

Stack Overflow用户

发布于 2012-03-24 14:51:45

新的Anser: NEWS FLASH webdriver现在支持Safari!抛弃safariwatir,使用webdriver来完成所有这些工作。我今天在Test Automation Bazaar上发现了这一点,所以没有太多细节。我希望在接下来的一周左右,一旦人们从会议中恢复过来,就会看到来自Watir社区的一些关于这方面的博客帖子。

更新:有关如何使用Safari的详细信息,请参阅watir-webdriver blog

票数 2
EN

Stack Overflow用户

发布于 2012-03-23 11:27:26

Ruby中的类是对象,但类是“每次执行一个/对象空间”的概念只存在,因为Ruby类对象被赋值为常量。

因为您的类是用剧院模块命名的,所以您可以动态检查对象的类型。如果这还不够,您可以使用duck type。由于您提到了兼容性问题,有一些方法存在于一个方法而不存在于另一个方法(您可以对其进行测试),或者有一些方法为每个方法返回不同的值(您可以对其进行测试)。

票数 0
EN

Stack Overflow用户

发布于 2012-03-23 12:00:02

当我需要'watir‘gem时,我通过使用条件逻辑处理了类似的事情,因此根据环境的配置,最终只需要一个版本。我可以稍后提供更多细节,也许在watir测试自动化集市结束后,我有一点时间为您思考和挖掘一些代码样本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9832300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档