|
|
Line 1: |
Line 1: |
| <p></p>
| |
|
| |
|
| ==Expertiza==
| |
| It is an open source software created by North Carolina State University's students. It works on ruby on rails framework. This platform allows instructor to post notification about tests and assignments and also allows students to view grades, submit assignments, find teammates etc.<br>
| |
| <p></p>
| |
|
| |
| ==Problem Statement==
| |
| 1.Create a new file named review_response_map_spec.rb under spec/models folder<br>
| |
| 2.Write RSpec unit tests to make the path coverage above 90%.<br>
| |
| 3.Coverage as many edge cases as you can.<br>
| |
| 4.Achieve as high branch coverage as you can. We will use the mutant-rspec gem to measure test thoroughness and fault-finding capability of your tests.<br>
| |
|
| |
| ==Current Implementation==
| |
| The following test checks if the title is correct or not.
| |
| <pre>
| |
| describe '#get_title' do
| |
| it 'returns the title' do
| |
| expect(review_response_map.get_title).to eql("Review")
| |
| end
| |
| end
| |
| </pre>
| |
| The following tests the questionnaire method
| |
| <pre>describe '#questionnaire' do
| |
| it 'returns questionnaire' do
| |
| allow(assignment).to receive(:review_questionnaire_id).and_return(1)
| |
| allow(Questionnaire).to receive(:find_by).with(id: 1).and_return(questionnaire)
| |
| expect(review_response_map.questionnaire.id).to eq(1)
| |
| end
| |
| end </pre>
| |
| The following tests the export fields method
| |
| <pre> describe '.export_fields' do
| |
| it 'returns list of strings "contributor" and "reviewed by"' do
| |
| expect(ReviewResponseMap.export_fields "").to eq(["contributor", "reviewed by"])
| |
| end
| |
| end</pre>
| |
| The following tests the delete method
| |
| <pre>describe '#delete' do
| |
| it 'deletes the review response map' do
| |
| allow(review_response_map.response).to receive(:response_id).and_return(1)
| |
| allow(FeedbackResponseMap).to receive(:where).with(reviewed_object_id: 1).and_return([feedback_response_map])
| |
| allow(feedback_response_map).to receive(:delete).with(nil).and_return(true)
| |
| allow(MetareviewResponseMap).to receive(:where).with(reviewed_object_id: review_response_map.id).and_return([meta_review_response_map])
| |
| allow(meta_review_response_map).to receive(:delete).with(nil).and_return(true)
| |
| allow(review_response_map).to receive(:destroy).and_return(true)
| |
| expect(review_response_map.delete).to be true
| |
| end
| |
| end
| |
| </pre>
| |
| The folowing code tests the get responses for team round method
| |
| <pre>describe '.get_responses_for_team_round' do
| |
| context 'when team doesnt exist' do
| |
| it 'returns empty response' do
| |
| team = instance_double('AssignmentTeam').as_null_object
| |
| allow(team).to receive(:id).and_return(false)
| |
| expect(ReviewResponseMap.get_responses_for_team_round team, 1).to eql([])
| |
| end
| |
| end
| |
| context 'when team exists' do
| |
| it 'returns the responses for particular round' do
| |
| team = instance_double('AssignmentTeam', :id=>1)
| |
| round = 1
| |
| allow(ResponseMap).to receive(:where).with(reviewee_id: 1, type: "ReviewResponseMap").and_return([response_map, response_map2])
| |
| expect(ReviewResponseMap.get_responses_for_team_round(team, round).length).to eql(2)
| |
| end
| |
| end
| |
| end</pre>
| |
| The following code tests the show feedback method
| |
| <pre>describe '#show_feedback' do
| |
| context 'when no response is present or response is nil' do
| |
| it 'returns nil' do
| |
| db1 = instance_double("Response").as_null_object
| |
| expect(review_response_map.show_feedback db1).to be(nil)
| |
| end
| |
| end
| |
| end
| |
| end</pre>
| |