我将使用python作为我正在寻找的示例(如果您不了解Python,可以将其视为伪代码):
>>> a = 1
>>> type(a)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
我知道在红宝石中我能做到:
1.9.3p194 :002 > 1.class
=> Fixnum
Run Code Online (Sandbox Code Playgroud)
但这是确定对象类型的正确方法吗?
嗨,有一个等效的ruby方法的JavaScript encodeURIComponent
方法?我正在使用它URI.unescape(str)
但它识别 "£"
(在encodeURIComponent
它变成之后"%C2%A3"
)作为"?"
标志.任何解决方案?谢谢
根据网页更新,显然,sleep
或wait_until
使用最新版本的Capybara无效.
但是,如果我添加sleep(1)
对测试的调用,我有一组只能在快速机器上运行的测试.也就是说,测试看起来像:
describe "dosimeters page" do
before do
click_link("Dosimeter Read History", :match=>:first)
end
...
Run Code Online (Sandbox Code Playgroud)
变
describe "dosimeters page" do
before do
unix_wait
click_link("Dosimeter Read History", :match=>:first)
end
...
Run Code Online (Sandbox Code Playgroud)
在那里我定义unix_wait
为:
def unix_wait
case RbConfig::CONFIG['host_os']
when /darwin/
when /linux-gnu/
sleep(1)
end
end
Run Code Online (Sandbox Code Playgroud)
问题是,我有一台旧的Ubuntu 12.04四核笔记本电脑在Jenkins上运行这些测试,一切都运行良好,没有unix_wait
电话.测试在运行Ubuntu 13.10和macbook pro笔记本电脑的六核桌面上随机失败,但是如果我添加了unix_wait
调用,那么测试就会通过.
测试失败本身表示加载失败(即某些运行中缺少css元素,但其他运行中没有),并且当手动加载站点时,被测试的内容实际上有效.
那么这里适当的行动是什么?显然,sleep
测试期间不允许,也不允许wait_until
.然而,睡眠是有效的,但它对我来说似乎非常粗糙.我应该看看#synchronized
吗?从我从那些博客文章中收集的内容来看,当我打电话时,它已经被调用click_link
,并且测试仍然失败.
这里接受的协议是什么?
我应该补充一下,因为我认为这很重要:这些都是javascript测试.我正在使用基于qt4(而不是qt5)的capybara-webkit.我正在考虑切换到poltergeist或其他一些javascript驱动程序作为调试步骤.