This is my repository for Udacity's project#4 using Udacity starter code (forked from udacity/frontend-nanodegree-feedreader (https://github.com/udacity/frontend-nanodegree-feedreader)).
[Live version of the tests]
For a refresher (or reference) before you begin writing code, we recommend reviewing the content from JavaScript Testing. Your project will be evaluated by a Udacity code reviewer according to the Feed Reader Testing project rubric. Please review for detailed project requirements.
- Familiarize yourself with the starter code
- Open up
index.htmland review the functionality of the application within your browser - What is all the code in
app.jsdoing? Be sure to read all code comments - Check out
style.css. How is styling applied to the application?
- Open up
- Explore the Jasmine spec file in
feedreader.js- This is the file in which you'll be writing your tests
- Make sure to read all code comments here as well
- Review the Jasmine documentation if needed
- Edit the
allFeedsvariable inapp.jsto make the provided test fail- See how Jasmine visualizes this failure in your application
- Return the
allFeedsvariable to a passing state after reviewing the failed test
- Write a test that loops through each feed in the
allFeedsobject and ensures it has a URL defined and that the URL is not empty- For example, how would you use a
for...ofloop in this test?
- For example, how would you use a
- Write a test that loops through each feed in the
allFeedsobject and ensures it has a name defined and that the name is not empty- Think about how you wrote the previous test. What are you testing for this time?
- Write a new test suite named
"The menu"- What are you
describe-ing in this test suite?
- What are you
- Write a test that ensures the menu element is hidden by default
- You'll have to analyze the HTML and the CSS to determine how the hiding/showing of the menu element is implemented
- What code in
app.jsis directly involved with toggling the menu on and off?
- Write a test that ensures the menu changes visibility when the menu icon is clicked. This test should have two expectations: does the menu display itself when clicked, and does it hide when clicked again?
- Think about how you wrote the previous test. What is different this time around?
- Which clickable element are you checking for?
- How do you "simulate" a mouse click that element without actually clicking it?
- Write a test suite named
"Initial Entries"- What are you
describe-ing in this test suite?
- What are you
- Write a test that ensures when the
loadFeedfunction is called and completes its work, there is at least a single.entryelement within the.feedcontainer- How does Jasmine's
beforeEach()function work? - How does the
loadFeed()function inapp.jswork? Is it synchronous or asynchronous?
- How does Jasmine's
- Write a test suite named
"New Feed Selection"- What are you
describe-ing in this test suite?
- What are you
- Write a test that ensures when a new feed is loaded by the
loadFeedfunction that the content actually changes- How is this test different from the previous test?
Additionally, note that:
- No test should be dependent on the results of another
- Callbacks should be used to ensure that feeds are loaded before they are tested
- Error handling should be implemented for undefined variables and out-of-bound array access
- When complete, all of your tests should pass
- git add .
- git commit -m "Any message"
- git push origin master
Helpful links for this project:
This repository is the starter code for all Udacity students. Therefore, we most likely will not accept pull requests.