Mocking a widget with required parameters

Hi ,
I’m mocking some widgets , all the widget’s mock are OK except one which has a required parameters - the flow continue to the original Widget instead the mock .

The widget looks like :

  List<Offset> points;
  bool clear;
  final Image image;

  RectanglePainter({@required this.points, @required this.clear, @required this.image});

  @override
  void paint(Canvas canvas, Size size) {...}

The Mock is :
class ImageMock extends Mock implements Image {}
class RectanglePainterMock extends Mock implements RectanglePainter {
  List<Offset> points;
  bool clear;
  final ImageMock image;

  RectanglePainterMock({@required this.points, @required this.clear, @required this.image});
}

(tried also without parameters: 
class RectanglePainterMock extends Mock implements RectanglePainter {})

and:
var poolImage = ImageMock();
var rectanglePainter = RectanglePainterMock(points: points,image: poolImage, clear:false); //tried also without parameters
when(rectanglePainter.paint(any,any)).thenReturn(SizedBox());

why does it call paint method in rectanglePainter ?

Thanks!