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

Coral airport_challenge #2494

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open

Coral airport_challenge #2494

wants to merge 15 commits into from

Conversation

Coral-Ann
Copy link

Coral Baker

Please write your full name here to make it easier to find your pull request.

User stories

Please list which user stories you've implemented (delete the ones that don't apply).

  • User story 1: "I want to instruct a plane to land at an airport"
  • User story 2: "I want to instruct a plane to take off from an airport and confirm that it is no longer in the airport"
  • User story 3: "I want to prevent landing when the airport is full"
  • User story 4: "I would like a default airport capacity that can be overridden as appropriate"
  • User story 5: "I want to prevent takeoff when weather is stormy"
  • User story 6: "I want to prevent landing when weather is stormy"

README checklist

Does your README contains instructions for

  • how to install,
  • how to run,
  • and how to test your code?

Here is a pill that can help you write a great README!

take_off_checks(plane)
@hangar.delete(plane)
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The use of private methods really helps with isolating parts of the code that you don't want the user to access.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also greatly simplifies the code that the user will be using

let(:plane) { double :plane }
let(:plane2) { double :plane2 }
let(:airport) { Airport.new(5) }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests have been ordered well with landing tests grouped together first before take off tests


describe Airport do
let(:plane) { double :plane }
let(:plane2) { double :plane2 }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use single line syntax for setting doubles with their own methods and return values in each unit test to make code more DRY

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can also take that a step further by using a "before do" bock of code to set the doubles and method results for all subsequent tests

@capacity = capacity
@weather = Weather.new
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Methods were kept very short which makes them easier to understand


it 'returns true if theres a storm.' do
expect(subject.storm?).to be(true).or be(false)
end

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "srand" to remove the random number generation and set the weather to what you want in the test

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

Successfully merging this pull request may close these issues.

2 participants