E1848 Write unit tests for assignment team: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 24: | Line 24: | ||
====Testing has_submissions? ==== | ====Testing has_submissions? ==== | ||
3 test cases are designed to test this method: | |||
1.The team doesn't submit any file or link. | 1.The team doesn't submit any file or link. | ||
Line 50: | Line 50: | ||
allow(team2).to receive(:submitted_files).and_return([double(:File)]) | allow(team2).to receive(:submitted_files).and_return([double(:File)]) | ||
expect(team2.has_submissions?).to be true | expect(team2.has_submissions?).to be true | ||
end | |||
</pre> | |||
====Testing participants ==== | |||
1. No participants in this team | |||
<pre> | |||
it '#no participant' do | |||
expect(team1.participants).to eq([]) | |||
end | |||
</pre> | |||
2. add some participants and get all the participants | |||
<pre> | |||
let(:student1) { build(:student, id: 1, name: 'johns', fullname: 'johns franklin') } | |||
let(:student2) { build(:student, id: 2, name: 'kate', fullname: 'kate moss') } | |||
let(:par1) { build(:participant, id: 1, parent_id: 1, user_id: 1) } | |||
let(:par2) { build(:participant, id: 2, parent_id: 1, user_id: 2) } | |||
it '#1 participant' do | |||
allow(AssignmentTeam).to receive(:users).with(id: team1.id).and_return([student1,student2]) | |||
expect(team1.participants).to eq([par1, par2]) | |||
end | |||
</pre> | |||
====Testing add_participant ==== | |||
<pre> | |||
it '#add participants' do | |||
expect(team1.add_participant(ass1.id, par1)).to be_instance_of(AssignmentParticipant) | |||
end | end | ||
</pre> | </pre> |
Revision as of 02:27, 2 November 2018
For this progect, the goal is to wirte up unit tests for assignment_team.rb
Project Introduction
assignment_team.rb is the child class of team.rb. It is used to manage student teams in assignments. There are not enough unit tests for this model in expertiza. The following tests are added to assignment_team.rb in this project.
Unit Tests
Unit Test Tool
Rspec
Unit Test File
expertiza/spec/models/assignment_team_spec.rb
Unit Test Steps
- Create unit test cases in the assignment_team_spec.rb
- run rspec spec/models/assignment_team_spec.rb under expertiza directory
- the rspec outputs the number of test cases that are passed and those that are failed.
Unit Test Cases
Testing has_submissions?
3 test cases are designed to test this method:
1.The team doesn't submit any file or link.
let(:team2) { build(:assignment_team, id: 2, parent_id: 1, name: "team2", submitted_hyperlinks: "") } it "no file or no link" do expect(team2.has_submissions?).to eq(false) end
2.The team submits a link instead of files.
let(:team1) { build(:assignment_team, id: 1, parent_id: 1, name: "team1", submitted_hyperlinks: "http://example.com") } it "submitted hyperlinks" do expect(team1.has_submissions?).to eq(true) end
3. The team submits some files. Stub is used to emulate the scenario that the team has submitted a file.
it "returns true" do allow(team2).to receive(:submitted_files).and_return([double(:File)]) expect(team2.has_submissions?).to be true end
Testing participants
1. No participants in this team
it '#no participant' do expect(team1.participants).to eq([]) end
2. add some participants and get all the participants
let(:student1) { build(:student, id: 1, name: 'johns', fullname: 'johns franklin') } let(:student2) { build(:student, id: 2, name: 'kate', fullname: 'kate moss') } let(:par1) { build(:participant, id: 1, parent_id: 1, user_id: 1) } let(:par2) { build(:participant, id: 2, parent_id: 1, user_id: 2) } it '#1 participant' do allow(AssignmentTeam).to receive(:users).with(id: team1.id).and_return([student1,student2]) expect(team1.participants).to eq([par1, par2]) end
Testing add_participant
it '#add participants' do expect(team1.add_participant(ass1.id, par1)).to be_instance_of(AssignmentParticipant) end