Prelims of Kant get Marx 2.0: a general politics quiz
Query Management system-Iv review
1. IVReview :: Test Case
Rails generate a framework for unit and functional tests. You can get pretty good test
coverage by filling in the framework with tests for the functionality you write. There are two
important points to test in a Rails application:
• Testing the Models.
• Testing the Controllers.
Testing Models:
When you generate a model with the generate script, Rails also generates a unit test script for
the model in the test directory. It also creates a fixture, a yaml file containing test data to be loaded
into the testapp_test database.
Unit Test:
A test of individual programs or modules in order to ensure that there are no analysis or
programming errors is known as unit testing. As in other languages, Ruby provides a framework in
its standard library for setting up, organizing and running tests called Test::Unit. An unit testing
provides three basic functionalities:
• A way to define basic pass/fail tests.
• A say to gather like tests together and run them as a group
• Tools for running single tests or whole groups of tests.
Code for Unit Testing:
require 'test_helper'
class ApplicantTest < ActiveSupport::TestCase
testsome_undefined_variable
assert true "should not save without email_id" do
applicant = Applicant.new
assert !applicant.save
some_undefined_variable
assert true
end
end
In terminal
2. Unit Testing Case Summary:
Test case id Description Expected Results Actual Results Status
1 Enter the email_id It should raise It is not accepting Pass
as Blank error
2 Enter email_id with It should accept to It is not accept Fail
varchar(20) proceed more then 20
3 Enter email_id with It should accept to It is not accepting Pass
special characters proceed
4 Enter a email_id It should accept to It is not accepting Fail
with numerical proceed
Testing Controllers:
Controller testing is also known as functional testing. Functional testing tests the following
type of functionalities of the controllers:
• Is the response redirected as expected ?
• Is the expected template rendered?
• Is the routing as expected
• Does the response contain the expected tags?
Functional Test:
Functional testing is a type of Black box testing that bases its test cases on the specifications
of the software component under test. Functions are tested by feeding them input and examining the
output, and internal program structure is rarely considered.
Code for Functional Testing:
require 'test_helper'
class MailersControllerTest < ActionController::TestCase
setup do
@user = users(:one)
end
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:users)
end
test "should get new" do
get :new
assert_response :success
end
4. Functional Testing Case Summary:
Test case id Description Expected Results Actual Results Status
1 Get index It should get index It is accepting/ Pass
page/ if is not get display page error
2 Get new It should diplay It is accepting Pass
create page
3 Get new/submit It should create Its accepting/not Pass/Fail
record/not create accepting
4 Get show It should display Its accepting Pass
created record
5 Get destroy I should delete Its accepting Pass
selected record
Using Rake for testing:
We can use rake utility to test our applications by Various kind of testing strategy. Here are
few important commands.
• $rake test Test all unit tests and functional tests (and integration tests, if they exist).
• $rake test:functionals Run all functional tests.
• $rake test:units Run all unit tests.
• $rake test:integration Run all integration tests.
• $rake test:plugins Run all test in ./vendor/plugins/**/test.
• $rake test:recent Run tests for models and controllers that have been modified in the last
10 minutes:
Some Rake Utility:
• $rake db:test:clone Recreate the test database from the current environment's database
schema.
• $rake db:test:clone_structure Recreate the test databases from the development structure.
• $rake db:test:prepare Prepare the test database and load the schema.
• $rake db:test:purge Empty the test database.