User:Abhinavrai/sandbox

= Feature Tests for Team Functionality =

Background
Expertiza is an open source web based peer review system developed and maintained by students and faculty at North Carolina State University. It enables students enrolled in a particular course to form online teams and complete assignments. A typical cycle of an assignment involves the following major steps:


 * A pool of topics is made available to the students to choose from and form team to complete it within a pre-set deadline.
 * After the development phase is finished, begins the peer review phase. Here students can review work of other teams, on the basis of some predefined factors and provide their feedback.
 * Members of a team can also provide feedback for the respective review done for their work.
 * In some projects there is a second development phase which allows team members to improve upon their work keeping past reviews in consideration.
 * After this second development cycle begins another review phase, where original reviewers can re-review the updated work and provide critical feedback.

Purpose
The purpose of this task is to write functional tests for team functionality. Once an assignment is out, a student can select this assignment and others can join in the team. To test this functionality we wrote functional tests for the various scenarios. One such scenario is :


 * Once the assignment is out and a student selects it, he/she can send out invites to other students to join the team.
 * Invited students can accept the invitation and join the team.

Functional Tests
Functional tests ensure that the functionalities of a software system are working as expected. To write our functional tests, we used the Capybara gem available for Ruby. Capybara gem allows a user to test their web application through simulations.

Running the tests
The tests can be run on the terminal using the command: rspec specfile.rb

Whether the test fails or succeeds, allows us to determine which parts of the system are functioning properly.