+
Skip to content

AePageObjects::Document blows up with unclear error message when load ensuring #163

@leoskyrocker

Description

@leoskyrocker

Demo: 0339199

STR

  1. Create a page object document like this that has 2 paths: 1st path is a valid path, 2nd path does not exist in the app.
  2. In the test, go visit a url that does not match the first path of the above page object.
  3. Instantiate the page object you created above, e.g. DummyShowPageWithUnresolvablePath.new

O

NoMethodError: undefined method `requirements' for nil:NilClass
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/core/application_router.rb:48:in `resolve_named_route'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/core/application_router.rb:18:in `recognizes?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/core/application_router.rb:117:in `path_recognizes_url?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/core/site.rb:47:in `path_recognizes_url?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:10:in `block in can_load_from_current_url?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:9:in `any?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:9:in `can_load_from_current_url?'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:66:in `block in ensure_loaded!'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects.rb:67:in `wait_until'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:66:in `ensure_loaded!'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/node.rb:19:in `initialize'
    /Users/leolei/src/ae_page_objects/lib/ae_page_objects/document.rb:48:in `initialize'
    test/selenium/page_object_integration_test.rb:28:in `new'
    test/selenium/page_object_integration_test.rb:28:in `test_load_ensuring'
    minitest (5.8.4) lib/minitest/test.rb:108:in `block (3 levels) in run'
    minitest (5.8.4) lib/minitest/test.rb:205:in `capture_exceptions'
    minitest (5.8.4) lib/minitest/test.rb:105:in `block (2 levels) in run'
    minitest (5.8.4) lib/minitest/test.rb:256:in `time_it'
    minitest (5.8.4) lib/minitest/test.rb:104:in `block in run'
    minitest (5.8.4) lib/minitest.rb:331:in `on_signal'
    minitest (5.8.4) lib/minitest/test.rb:276:in `with_info_handler'
    minitest (5.8.4) lib/minitest/test.rb:103:in `run'
    minitest (5.8.4) lib/minitest.rb:778:in `run_one_method'
    minitest (5.8.4) lib/minitest.rb:305:in `run_one_method'
    minitest (5.8.4) lib/minitest.rb:293:in `block (2 levels) in run'
    minitest (5.8.4) lib/minitest.rb:292:in `each'
    minitest (5.8.4) lib/minitest.rb:292:in `block in run'
    minitest (5.8.4) lib/minitest.rb:331:in `on_signal'
    minitest (5.8.4) lib/minitest.rb:318:in `with_info_handler'
    minitest (5.8.4) lib/minitest.rb:291:in `run'
    minitest (5.8.4) lib/minitest.rb:152:in `block in __run'
    minitest (5.8.4) lib/minitest.rb:152:in `map'
    minitest (5.8.4) lib/minitest.rb:152:in `__run'
    minitest (5.8.4) lib/minitest.rb:129:in `run'
    minitest (5.8.4) lib/minitest.rb:56:in `block in autorun'

D
A better error message, telling the user they actually put in a path that's not found. (It's really hard to debug if someone run into this, and it was a typo).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载