Title: Unit 10 - Mock Classes
Download Unit Project Files
[Rule] public var myRuleThatDoesSomethingCool:MyRule = new MyRule();
[Rule] public var mockRule:MockolateRule = new MockolateRule();
public function Circle( origin:Point, radius:Number )
// if( ( radius <= 0 || isNaN( radius ) ) {
// throw new RangeError( "Radius must be a positive Number" );
// }
if( origin == null ) {
origin = new Point( 0, 0 );
}
public function Circle( origin:Point, radius:Number ) {
// if( ( radius <= 0 || isNaN( radius ) ) {
// throw new RangeError( "Radius must be a positive Number" );
// }
if( origin == null ) {
origin = new Point( 0, 0 );
}
this._origin = origin;
this._radius = radius;
}
[Rule] public var mockRule:MockolateRule = new MockolateRule();
[Mock] public var mockCircle:Circle;
[Test]
public function shouldBeNotNull():void {
assertThat(mockCircle, notNullValue() );
}
[Suite]
[RunWith("org.flexunit.runners.Suite")]
public class CircleSuite {
public var test1:BasicCircleTest;
public var test2:CircleConstructorTest;
public var test3:CircleTheory;
public var test4:CircleMockTest;
}
[Mock] public var myMock:MockableObject;
[Mock(type="strict",inject="false")] public var myMock:MockableObject;
stub(myMock).getter("name").returns("Useful Mock");
stub(myMock).method("toString").returns("Useful Mock");
stub(myMock).method("add").args(3, 5).returns(8);
stub(myMock).method("repeatIt").args(instanceOf(String)).returns(instanceOf(String));
[Test]
public function shouldBeEqualCircleMock():void {
}
mock( mockCircle ).getter( "origin" ).atLeast( 1 );
var circle:Circle = new Circle( new Point( 0, 0 ), 0 );
circle.equals( mockCircle );
[Mock( type="strict" )]
mock( mockCircle ).getter( "radius" ).atLeast( 1 );
[Mock( inject="false" )] public var mockPoint:Point;
mockPoint = nice( Point, "myPoint", [ 0, 0 ] );
[Mock( type="strict" )] Public var mockCircle:Circle;
[Mock( inject="false", type="strict" ) Public var mockCircle:Circle;
[Before]
public function setup():void {
}
[Before]
public function setup():void {
mockCircle = strict( Circle, "mockCircle", [ new Point( 0, 0 ), 1 ] );
}
mock( mockCircle ).getter( "origin" ).atLeast( 1 ); mock( mockCircle ).getter( "radius" ).atLeast( 1 );
mock( mockCircle ).getter( "origin" ).returns( new Point( 0, 0 ) ).atLeast( 1 ); mock( mockCircle ).getter( "radius" ).returns( 1 ).atLeast( 1 );
var circle:Circle = new Circle( new Point( 0, 0 ), 1 );
circle.equals( mockCircle );
assertTrue( circle.equals( mockCircle ) );
// if ( ( radius <= 0 ) || isNaN( radius ) ) {
// throw new RangeError("Radius must be a positive Number");
// }
if( origin == null ) {
origin = new Point( 0, 0 );
}
private static const TOLERANCE:Number = .01;
[Rule] public var mockRule:MockolateRule = new MockolateRule();
[Mock] public var mockPoint:Point;
[Test]
public function shouldBeEqualDistance():void {
}
var testPoint:Point = new Point( 5, 5 );
var endPoint:Point = new Point( 10, 10 );
var summedPoints:Point;
mock( mockPoint ).method( "add" ).args( testPoint ).returns( new Point( 10, 10 ) );
summedPoints = mockPoint.add( testPoint );
assertThat( endPoint, new CloseToPointMatcher( summedPoints, TOLERANCE ) );
[Suite]
[RunWith("org.flexunit.runners.Suite")]
public class CircleSuite {
public var test1:BasicCircleTest;
public var test2:CircleConstructorTest;
public var test3:CircleTheory;
public var test4:CircleMockTest;
public var test5:DistanceTest;
}