User:Xpan
Functional tests for assignment creation function
This page outlines the use tests for assignment creation using the Expertiza system
Structural Overview
Assignment creation in Expertiza provides a large number of options for users. Features come at the cost of complexity; this project is focused on creating testing methods to ensure that user interaction with the assignment interface remains stable and reliable.
Assignment creation is available from the Manage -> Assignments drop down on the expertiza site. Once an assignment is created it has 5 tabs for form entry. The remainder of this document will cover testing for each tab in more detail, the tabs are:
- General
- Topics
- Rubrics
- Review Strategy
- Due Dates
General
In this section, the functional test includes assignment name, course, submission directory, description URL, "Has team?", "Has quiz?" and "Calibrated peer-review for training".
- assignment name
it "can set assginment name" do login_as("instructor6") visit '/assignments/new?private=0' expect(page).to have_content "Assignment name" fill_in "Assignment name:", with: 'assignment for test' click_button "Create" expect(Assignment.where(name: "assignment for test")).to exist end
- course
it "can select course" do login_as("instructor6") visit '/assignments/new?private=0' select('5', :from => 'assignment_form_assignment_course_id') click_button "Create" end
- submission directory
it "can set assginment Submission directory" do login_as("instructor6") visit '/assignments/new?private=0' fill_in "Assignment name:", with: 'assignment for test 2' expect(page).to have_content "Submission directory" fill_in "Submission directory:", with: 'Submission directory for test' click_button "Create" expect(Assignment.find(2).directory_path).to eq 'Submission directory for test' end
- description URL
it "can set assginment Description URL" do login_as("instructor6") visit '/assignments/new?private=0' fill_in "Assignment name:", with: 'assignment for test 3' expect(page).to have_content "Description URL" fill_in "Description URL:", with: 'Description URL for test' click_button "Create" expect(Assignment.find(2).spec_location).to eq 'Description URL for test' end
- "Has team?"
it "can Has teams and set team number" do login_as("instructor6") visit '/assignments/new?private=0' fill_in "Assignment name:", with: 'assignment for test 5' find('#team_assignment').set(true) expect(page).to have_content "Maximum number of members per team" expect(page).to have_content "Show teammate reviews" fill_in 'assignment_form_assignment_max_team_size', with: 4 find('#assignment_form_assignment_show_teammate_reviews').set(true) click_button "Create" expect(Assignment.find(2).show_teammate_reviews).to eq true end
- "Has quiz?"
it "can save the number of quiz questions" do login_as("instructor6") visit '/assignments/new?private=0' fill_in "Assignment name:", with: '11' select('5', :from => 'assignment_form_assignment_course_id') find('#assignment_form_assignment_require_quiz').set(true) click_button "Create" visit '/assignments/2/edit' expect(page).to have_content "Number of Quiz questions" end
- "Calibrated peer-review for training"
it "can set Calibrated peer-view for training" do login_as("instructor6") visit '/assignments/new?private=0' fill_in "Assignment name:", with: 'assignment for test 4' find('#assignment_form_assignment_is_calibrated').set(true) click_button "Create" expect(Assignment.find(2).is_calibrated).to eq true end
Topics
Rubrics
Rubrics are arranged into 3 rows of data named "Review", "Author Feedback", and "Teammate Review". Each row is handled under separate descriptions in order to allow quick and comprehensive testing for the seperate functions. Each row updates a subclass of the Questionnaire class. The Active Record hierarchy is:
- Questionnaire
- ReviewQuestionnaire
- AuthorFeedbackQuestionnaire
- TeammateReviewQuestionaire
The Questionnaire class is connected to the Assignment class via the AssignmentQuestionnaire class.