Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Student:
- int grade
- boolean IsStudentPassing():
- return grade >= MIN_PASSING_GRADE
- ...
- // In another file
- constant int MIN_PASSING_GRADE = 70
- ensure that IsStudentPassing is false when grade is MIN_PASSING_GRADE - 1
- ensure that IsStudentPassing is true when grade is MIN_PASSING_GRADE
- ensure that IsStudentPassing is false when grade is 69
- ensure that IsStudentPassing is true when grade is 70
- use MooseX::Declare;
- class Student {
- has grade => (
- is => 'ro', isa => 'Num', required => 1,
- );
- method min_passing_grade {
- return MIN_PASSING_GRADE;
- )
- method is_student_passing () {
- return $self->grade >= $self->min_passing_grade
- }
- }
- class t::Student {
- use Test::Sweet;
- use Test::MockObject::Extends;
- test correctly_determines_student_is_passing () {
- my $student = $self->_make_student($self->_passing_grade);
- ok($student->is_student_passing);
- }
- method _make_student (Num $grade) {
- my $student = Test::MockObject::Extends->new(
- $student->new(grade => $grade)
- );
- # Here's the important line:
- $student->set_always(
- min_passing_grade => $self->_passing_grade
- );
- return $student;
- }
- method _passing_grade () { 40 }
- test correctly_determines_student_is_failing () {
- my $student = $self->_make_student($self->_passing_grade - 1);
- ok(not $student->is_student_passing);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement