Testing and Java Coding: Developing Test Cases and Understanding Objects, Lecture notes of Object Oriented Programming

An introduction to testing in java programming, emphasizing the importance of developing test cases before writing the method's body. It includes examples of test cases for methods that count the number of vowels in a word and create a worker object. The document also discusses the concept of static components and the use of static variables.

Typology: Lecture notes

2012/2013

Uploaded on 08/20/2013

yumni
yumni 🇮🇳

5

(2)

25 documents

1 / 12

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Abitabouttesting
Test case: Set of input values, together with the expected output.
Develop test cases for a method from its specification --- even
before you write the methods body.
/** = number of vowels in word w.
Precondition: w contains at least one letter and nothing but letters*/
public int numberOfVowels(String w) {
}
Developing test
cases first, in
critique mode, can
prevent wasted work
and errors.
Howmanyvowelsineachofthesewords?
creek
syzygy
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Testing and Java Coding: Developing Test Cases and Understanding Objects and more Lecture notes Object Oriented Programming in PDF only on Docsity!

A^ bit^

about

testing

Test case

: Set of input values, together with the expected output. Develop test cases for a method from its specification --- evenbefore you write the method

’s body.

/** = number of vowels in word w.Precondition: w contains at least one letter and nothing but letters*/ public^ int

numberOfVowels(String w) {… }

Developing testcases first, in “critique”^ mode, canprevent wasted workand errors.

How^ many

vowels^

in^ each^ of

these^ words?

creek syzygy

Test^ cases

for^ number

of^ children

“Child 2” mom pop^ j0 children w0 0 name

BFly s0^ “Mumsie

” null mom^

popnull children^1 name

BFly j

“Opa” mom pop null children

null 1 name

BFly “Popsi b ” null mom^

b0pop children^2 name

BFly w

“Child 1” mom pop null children

w L0 name

BFly^1 If L0 gets a mom,say j0, the mom’snumber of childrenmust increase.You should test this.

Class^

Object:

the^ superest

class

of^ them

all

Java:^ Every

class^ that

does^ not extend^ another

extends

class

Object.^

That^ is, public class^ W^ {…} is^ equivalent

to public^ class

W^ extends

Object^ {…}

W@af

W

lname^

“Obama

ssn^123456789 boss^

null W(…)^ getLname() getSsn(),

getBoss()

Object setBoss(W) toString() equals(Object)

hashCode() Should^ draw

object^ like

this

We^ often

leave^ off

the^ top partition

to^ reduce

clutter; we

know^ that

it^ is^ always

there

Method

toString

Object W@af^ lname^

“Obama

ssn^123456789 boss^

W null getSsn()

toString()

toString()

in^ Object

returns the^ name

of^ the^ object:

W@af

Java Convention

: Define toString() in any class to return a representation ofan object, giving info about the valuesin its fields.New definition of toString()

overrides

the definition in partition Object

c^ W@af toString()^

c.toString()

calls^ this

method In appropriate places, the expressionc^ automatically does c.toString()

Another

example

of^ toString()

/** An instance represents a point (x, y) in the plane */ public class

Point { private^

int^ x; // x-coordinate private^

int^ y; // y-coordinate … / = repr. of this point in form**

(x, y)

public^ String

toString() { return^ “(” + x + “, ” + y + “)”;} }

Point@fa

Point x^9

y^5

Function toString should give the values in thefields in a format that makes sense for the class.

(9,^ 5) docsity.com

Intro^

to^ static

components

W@af

W

lname^ “

Om” boss null ssn^35 isBoss(W)

W@b

W

lname^

“Jo” boss W@af ssn^21 isBoss(W)

/** =^ “this object is c

’s boss”

Pre: c is not null. */ public^ boolean

isBoss(W c) { return this

== c.boss; } keyword

this^ refers to the name of the object in which

it appears

x.isBoss(y) is

false y W@af y.isBoss(x) isx W@b

true

Intro^

to^ static

components

W@af

W

lname^ “

Om” boss null ssn^35 isBoss(W)

W@b

W

lname^

“Jo” boss W@af ssn^21 isBoss(W)

/** =^ “b is c

’s boss”

Pre: b and c are not null. */ public^ static

boolean

isBoss(W b, W c) { return^ b == c.getBoss();}

isBos(W,W)

W@afy x^ W@b

static:^ there

is^ only^ one copy^ of^

the^ method.

It is^ not^ in

each^ object W^ (objects,

static components)

x.isBoss(x,

y) y.isBoss(x,

y) Preferred: W.isBoss(x,

y)

Java^ application

Java^ application:

bunch

of^ classes

with^ at

least^

one^ class

that^ has

this

procedure:^ public

static

void^ main(String[]

args)

{^ …^ }

Type^ String[]:

array^ of elements

of^ type^

String. We^ will^

discuss^ later

Running

the^ application

consists

of^ calling

that^ method

main

Convention:

the^ method

main^ doesn’t

use

parameter

args,^ then

call^ it^ with

argument

null