如何测试 TextPainter?

How can I test a TextPainter?

我写了一个 class 来处理自定义文本换行,但我不确定如何测试它。我正在尝试使用 Flutter 的 testWidgets 方法创建我的外部 class 的实例,向其传递一些文本,然后评估结果。有一个 public class PrecisionTextOverflow 其构建方法是这样的。 _PrecisionTextPainter 处理解析和绘制文本的操作。:

Widget build(BuildContext context) {
    return new Column(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        new CustomPaint(
          painter: new _PrecisionTextPainter(
              mainText,
              mainTextStyle,
              mainAlignment,
              secondaryText,
              secondaryTextStyle,
              secondaryAlignment,
              lineWidth,
              linesToWrap),
        )
      ],
    );
  }

由于 _PrecisionTextPainter 使用 TextPainters 而不是 Text 小部件来绘制实际文本,因此 Finder "find text" method 似乎对我不起作用。

我需要一种方法来测试我的 _PrecisionTextPainter 绘制了什么。如何访问其字段或生成的绘制文本?

很遗憾,我们目前没有测试绘画的好方法。

它在我们想要做的事情列表中排在前列。您可以在此处跟踪进度: https://github.com/flutter/flutter/issues/3227