Oz is a behavioral web-ui testing framework developed to reduce test maintenance by using a predictive model rather than a scriptive model when writing tests.
Apache License 2.0
23
stars
7
forks
source link
Allow manipulation of routes from within page objects #175
It may be worthwhile to expose the routes variable in the proceed_to loop so that a page can dynamically set which page it will end up on based on application state.
Proposal would basically be to allow something like
some_element.on_fill do
@world.routes.insert_route(SomePage)
end
or
def on_page_load
@world.routes.insert_route(SomePage) if ledger.get_value(APreviousPage, :visit_some_page_checkbox).eql?('checked')
end
This is a natural progression from the proceed_to! solution, which does have several drawbacks
Recalculation is slow because it's limited by the timeout on page identification.
It's a bit magical in nature
The reason i'm leaning towards this solution is that it, like most of oz, is declarative, and it continues to encapsulate the knowledge of where pages can route to inside of them.
It may be worthwhile to expose the routes variable in the proceed_to loop so that a page can dynamically set which page it will end up on based on application state.
Proposal would basically be to allow something like
or
This is a natural progression from the proceed_to! solution, which does have several drawbacks
The reason i'm leaning towards this solution is that it, like most of oz, is declarative, and it continues to encapsulate the knowledge of where pages can route to inside of them.