CSC/ECE 517 Fall 2015/ossE1572VPGMAL
Introduction
This page provides a description of the Expertiza based OSS project. Expertiza is an open source rails application developed on ruby and rails. The application allows students to submit and peer-review learning objects (articles, code, web sites, etc). The instructors can create assignments using this application and customize and manage them. It also helps to introduce the peer review system by which students can review the projects of their colleagues.
Problem Statement
We were expected to write a feature test which mocks the creation of an Assignment. For Expertiza Assignment management is the central part of the workflow. Goals:
- Understand the flow of the Assignment creation by instructor manually.
- Mock the same steps using capybara
- Create multiple assignments with different options and testing their existence.
Project Links
Classes Involved
- assignment_creation.rb
- spec_helper.rb
- rails_helper.rb
The assignment_creation.rb contains the feature tests written to test the creation of the assignment. The rails_helper is copied to spec/ when you run 'rails generate rspec:install'. All the rspec-expectations config goes into the spec_helper_file. We have used Capybara and RSpec to test our application. Capybara helps you test web applications by simulating how a real user would interact with your app.
Code
assignment_creation.rb
require 'rails_helper' require 'spec_helper' def GenerateAssignmentName()
(rand(1000) + 1).to_s + 'RSpecID' + (1 + rand(1000)).to_s
end RSpec.feature "create private assignment" do before(:each) do |example| unless example.metadata[:skip_before] visit root_path fill_in('login_name', :with => 'instructor6') fill_in('login_password', :with => 'password') click_on('SIGN IN') expect(page).to have_content('Manage') within(".content") do click_on("Assignments") click_button 'New private assignment' fill_in('assignment_form_assignment_name',:with => GenerateAssignmentName()) select('CSC 517 Fall 2010', from: 'assignment_form_assignment_course_id') fill_in('assignment_form_assignment_directory_path',:with => '/') fill_in('assignment_form_assignment_spec_location',:with => 'google.com') end end end