CSC/ECE 517 Fall 2015/ossE1572VPGMAL: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 52: Line 52:
     end
     end
</syntaxhighlight>
</syntaxhighlight>
===spec_helper.rb===
===spec_helper.rb===


===rails_helper.rb===
===rails_helper.rb===

Revision as of 05:23, 28 October 2015

Template:Student sandbox

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:

  1. Understand the flow of the Assignment creation by instructor manually.
  2. Mock the same steps using capybara
  3. 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

spec_helper.rb

rails_helper.rb