1

私は、スケジュールされた_テストを使用して、Polymer Dart 要素をテストしています。これは、solo_group() を使用するまで問題なく動作します。私のテストは呼び出される setUp() メソッドに依存しますが、solo_group() が使用される場合、setUp() メソッドは呼び出されません。私のテストは、理解できる失敗であり、null 値に関するエラーをスローします。これには理由がありますか?代わりに solo_test() を使用してみましたが、これは期待どおりに機能し、setUp() メソッドを呼び出す必要がありましたが、solo_group は呼び出しませんでした。

別のバグ報告のような気がしますが、これが予期された動作ではないことを事前に確認したいと思います。

{UPDATE} 求められたように、ここに例を示します。これはすべてのテスト コードではありませんが、十分なはずです。この例では、setUp() メソッドが呼び出されることを期待していますが、そうではありません。ただし、solo_group をただのグループにすると、そうなります。setUp() は、test() が solo_test() に置き換えられ、solo_group() が group() に置き換えられた場合にも呼び出されます。

class CheckedFieldComponent extends PageComponent {
  CheckedFieldComponent(el) : super(el);

  bool get value => component.model.value;
  bool get checkIconShown => component.shadowRoot.querySelector('core-icon') != null;
}

void checked_field_test() {
  CheckedFieldComponent component;
  CheckedFieldComponent component2;

  solo_group('[checked-field]', () {
    setUp(() {
      schedule(() => Polymer.onReady);
      schedule(() {
        BoolModel model = new Model.create('bool', '1', 'checked', true, true);
        BoolModel model2 = new Model.create('bool', '2', 'checked', false, true);

        PolymerElement element = createElement('<checked-field></checked-field>');
        PolymerElement element2 = createElement('<checked-field></checked-field>');

        element.model = model;
        element2.model = model2;

        document.body.append(element);
        document.body.append(element2);

        component = new CheckedFieldComponent(element);
        component2 = new CheckedFieldComponent(element2);

        return Future.wait([component.flush(), component2.flush()]);
      });
      currentSchedule.onComplete.schedule(() {
        component.component.remove();
        component2.component.remove();
      });
    });


    test('model.value is true', () {
      schedule(() {
        expect(component.value, isTrue);
      });
    });
  });
}
4

0 に答える 0