CSC/ECE 517 Spring 2018/E1823 Write integration tests for users controller.rb: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 51: Line 51:
<b>13. edit</b>
<b>13. edit</b>


resources :users in routing rule maps /users/1/edit (assuming user's id is 1) to edit action in users controller.  
resources :users in routing rule maps /users/1/edit (assuming user's id is 1) to edit action in users controller.
 
Thus, this edit method is called when accessing user's edit page and will pull the relevant user out of the database via user's id that stored in params[:id].
Thus, this edit method is called when accessing user's edit page and will pull the relevant user out of the database via user's id that stored in params[:id].


Line 57: Line 58:


resources :users in routing rule makes update action get called when the form in user's edit page is submitted.
resources :users in routing rule makes update action get called when the form in user's edit page is submitted.
This method will first find the relevant user by user's id that stored in params[:id] and then updates the user's information in the database based on the submitted params hash. If the update is successful it shows a success flash and redirects to user's show page otherwise it renders user's edit page.
This method will first find the relevant user by user's id that stored in params[:id] and then updates the user's information in the database based on the submitted params hash. If the update is successful it shows a success flash and redirects to user's show page otherwise it renders user's edit page.


Line 62: Line 64:


resources :users in routing rule makes destroy action response to delete method and thus accomplishing the user deletion.  
resources :users in routing rule makes destroy action response to delete method and thus accomplishing the user deletion.  
When this method is called, it will first find the relevant user via user's id that stored in params[:id] and then delete related AssignmentParticipant, TeamsUser and AssignmentQuestionnaire models if any (These models are found through their foregin key: user_id). Finally, the user is deleted from the database and it will show a success flash. If any of the above steps fails, it will throw an error flash.
When this method is called, it will first find the relevant user via user's id that stored in params[:id] and then delete related AssignmentParticipant, TeamsUser and AssignmentQuestionnaire models if any (These models are found through their foregin key: user_id). Finally, the user is deleted from the database and it will show a success flash. If any of the above steps fails, it will throw an error flash.



Revision as of 03:52, 6 April 2018

This wiki page is a description of E1813 final project for Spring 2018, CSC/ECE 517.

Project Statement

Introduction

users_controller.rb is a file under app/controllers that manages different kinds of methods related to users. This project is to write integration tests for users_controller.rb by using rspec, so our goal is to create a file named users_controller_spec.rb under spec/controllers folder and write integration tests to make the path coverage of users_controller.rb more than 90% and achieve the highest possible branch coverage.

All methods used in this file that can render or redirect to one or more user-related views will be thoroughly tested.(16 in total) We do not need to test private or protected methods directly because these methods should be tested when testing other public methods in the same file.

Files Involved

Newly-created file:

 spec/users_controller_spec.rb

Tested file:

 app/controllers/users_controller.rb

Related view files:

 app/views/users/edit.html.erb
 app/views/users/keys.html.erb
 app/views/users/list.html.erb
 app/views/users/list_pending_requested.erb
 app/views/users/new.html.erb
 app/views/users/request_new.html.erb
 app/views/users/show.html.erb

Team Members

1. Sandeep Rajendran(srajend@ncsu.edu)

2. Xiao Ma(xma21@ncsu.edu)

3. Zekun Zhang(zzhang56@ncsu.edu)

4. Zhiyu Chen(zchen45@ncsu.edu)

Test Plan

Functionality of the Controller

Table

Methods

13. edit

resources :users in routing rule maps /users/1/edit (assuming user's id is 1) to edit action in users controller.

Thus, this edit method is called when accessing user's edit page and will pull the relevant user out of the database via user's id that stored in params[:id].

14. update

resources :users in routing rule makes update action get called when the form in user's edit page is submitted.

This method will first find the relevant user by user's id that stored in params[:id] and then updates the user's information in the database based on the submitted params hash. If the update is successful it shows a success flash and redirects to user's show page otherwise it renders user's edit page.

15. destroy

resources :users in routing rule makes destroy action response to delete method and thus accomplishing the user deletion.

When this method is called, it will first find the relevant user via user's id that stored in params[:id] and then delete related AssignmentParticipant, TeamsUser and AssignmentQuestionnaire models if any (These models are found through their foregin key: user_id). Finally, the user is deleted from the database and it will show a success flash. If any of the above steps fails, it will throw an error flash.

16. keys

Testing Conditions

References