Tag: 测试

检测元素Selenium Webdriver的不一致性

我正在尝试运行自动化测试脚本(Selenium Webdriver2 + ruby​​),但最近遇到了一个奇怪的问题。 直到昨天完美无缺的脚本现在正在抛出“没有这样的元素exception”。 但是,当在firebug中检查时,路径肯定存在,并且应用程序中没有任何变化。 该脚本无法在以下代码中检测iframe2: – browser.manage.timeouts.implicit_wait = 20#秒 ############ GO TO OVERVIEW TAB ################ #Adding wait until quote is created and page is ready for content tab click. wait = Selenium::WebDriver::Wait.new(:timeout => 5) wait.until { browser.find_element(:id => “j_id0:tabDetailedContent_lbl”) } browser.find_element(:id => “j_id0:tabDetailedContent_lbl”).click iframe = browser.find_element(:id =>’CPQFrame’) browser.manage.timeouts.implicit_wait = 10 browser.switch_to.frame(iframe) browser.find_element(:css,”.processBarElement.noSelected”).click #frame.browser.find_element(:css,”.processBarElement.noSelected”).click […]

如何在整个示例组中使用实例变量,即使它在示例之外?

我正在使用Ruby on Rails 3.2.2和rspec-rails-2.8.1。 我想在整个Example Group中使用一个实例变量(在before hook中初始化),即使它在Example之外。 也就是说,我想做以下事项: describe “…” do before(:each) do @user = User.create(…) end # Here I would like to use the instance variable but I get the error: # “undefined method `firstname’ for nil:NilClass (NoMethodError)” @user.firstname it “…” do # Here it works. @user.firstname … end end 可能吗? 如果是这样,怎么样? 注意 :我想这样做是因为我试图输出有关将要运行的测试的更多信息,这样: […]

如何以及分别使用Cucumber和Rspec进行测试?

我正在使用Ruby on Rails 3.2.2,cucumber-rails-1.3.0,rspec-rails-2.8.1和capybara-1.1.2以及Selenium驱动程序。 我想分别使用Cucumber和Rspec来了解如何测试和测试什么 ? 也就是说,我应该用Cucumber处理什么“行为”以及Rspec如何以适当的方式划分测试“关注点”? 例如 ,为了测试视图,我应该使用Cucumber还是RSpec测试页面内容中是否存在CSS id ? 或两者?

One-liner应该使用大括号语法

在Rails Test Prescriptions(b10.0,第176页)一书中,有一些单行断言的例子,如下所示: should “be successful” { assert_response :success } 这对我来说似乎不是有效的ruby语法,并且ruby报告左大括号是意外的。 为了解析它,我必须将其更改为 should “be successful”; do assert_response :success end 第一个例子的语法有什么问题?

摩卡和嵌套对象

如果这是一个愚蠢的问题,我很嘲笑。 我可以用mocha做以下事情: person.expects(:first_name).returns(‘David’) 如何模拟嵌套对象? 假设我有一个属于一个人的产品,我想得到那个人的名字。 在我的应用程序中,我可能会这样做: product.person.first_name 如何使用模拟获得相同的结果?

测试Rails 4控制器

我在理解我的测试错误时遇到了一些麻烦,但在测试控制器的更新方法时,我一直没有获得路由匹配。 但是,通过浏览器提交表单是有效的。 我的路线文件: namespace :merchant do resources :users get ‘/signup’, to: “users#new” end 我的控制器: def update respond_to do |format| if @merchant_user.update(user_params) format.html { redirect_to @merchant_user, notice: ‘User was successfully updated.’ } format.json { head :no_content } else format.html { render action: ‘show’ } format.json { render json: @merchant_user.errors, status: :unprocessable_entity } end end end 我的测试: […]

使用Webrat进行测试时如何处理cookie?

我正在使用Webrat为基于Sinatra的应用程序编写Cucumber测试。 对于某些测试,我需要实现一个类似的场景 Given I am logged in as admin When I am visiting “/” Then I should see “Settings” 我定义了这样的步骤: Given /^I am logged in as “(.+)”$/ do |user| visit “/login” fill_in “login”, :with => user fill_in “password”, :with => “123456” click_button “Login” end When /^I am viewing “(.+)”$/ do |url| visit(url) end Then /^I […]

Minitest – 具有方法级粒度的测试套件

在升级之后,我发现相同的几个测试方法都失败了,所以我想自动测试那些而不是所有类中的所有方法。 我想列出每个类 – 方法对(例如TestBlogPosts.test_publish , TestUsers.test_signup )并让它们作为测试套件一起运行。 无论是在文件中还是在命令行中,我都不在乎。 我知道这些技术可以运行几个完整的类 ,但我在这里寻找更精细的粒度。 (类似于命令行上的-n / pattern / – 运行测试方法的子集 – 但跨多个类。)

如何在开发gem时使用’debugger’和’pry’? (ruby)

我正在开发一个gem,我的Gemfile看起来像这样: source :rubygems gemspec group :development, :test do gem “pry” gem “debugger” gem “rake” end 但是,我不希望人们在运行测试时必须安装pry和debugger ,但我也希望能够在我的测试中要求它们(因为我正在运行带有bundle exec前缀的测试,我无法得到它们在我的加载路径中,如果他们不在Gemfile中)。 我该如何实现这一目标? 另外,何时将用于开发的gem放在gemspec中,何时将它们放入Gemfile中? 我真的不知道区别。

calabash-ios物理设备测试,应用程序启动但崩溃

为简单的iPhone应用程序运行calabash-ios黄瓜。 模拟器工作得很好。 在物理设备上尝试时,应用程序会加载,崩溃,然后再次加载,并在循环中再次崩溃。 错误信息: Unable to start. Make sure you’ve set APP_BUNDLE_PATH to a build supported by this simulator version Calabash::Cucumber::Launcher::StartError: Time out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError. Logfile /var/folders/9s/yttj4cz93m98hqs6bfw2x8xr0000gn/T/run_loop20150522-12657-dr3m49/run_loop.out 2015-05-22 19:58:11 +0000 Fail: An error occurred while trying to run the script. Instruments Trace Complete (Duration : 2.594758s; Output […]