Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop including full Aruba API in Cucumber World or RSpec spec class #694

Open
mvz opened this issue Jan 3, 2020 · 2 comments
Open

Stop including full Aruba API in Cucumber World or RSpec spec class #694

mvz opened this issue Jan 3, 2020 · 2 comments
Milestone

Comments

@mvz
Copy link
Contributor

mvz commented Jan 3, 2020

Summary

Aruba exposes a large set of API methods into the test environment. It would be cleaner to access these through a dedicated object.

Expected Behavior

Something like:

  it "has some behavior" do
    aruba.write_file("foo.txt")
    aruba.run_command_and_stop("bar foo.txt")
    # ...
  end

Current Behavior

  it "has some behavior" do
    write_file("foo.txt")
    run_command_and_stop("bar foo.txt")
    # ...
  end

Possible Solution

This needs to be changed in several steps:

  1. Create object that provides these methods.
  2. Implement currently exposed methods in terms of this object.
  3. Deprecate direct use of exposed methods.
  4. Remove exposed methods.

Context & Motivation

Aruba's API is massive and testing it clearly is difficult because the methods are exposed to Aruba's specs as well. Also, exposing these through a real object makes it clearer for end users to see where the methods they call come from.

@mvz mvz added this to the 2.0.0 milestone Jan 3, 2020
@luke-hill
Copy link
Contributor

I think this would be something that would definitely prove tricky, but would provide good value, because then it starts to remove itself from the whole monkeypatch philosophy into a more OO one.

I might be able to dig into this a bit if you'd like, alongside other stuff.

@mvz
Copy link
Contributor Author

mvz commented Jul 26, 2020

Hi @luke-hill it would be great if you can take a look at this. There's no rush since this is for the 2.0 release.

@mvz mvz modified the milestones: 2.0.0, 2.1.0 Aug 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants