我使用scheduled_test来测试我的Polymer Dart元素。这很好,直到我尝试使用solo_group()。我的测试依赖于被调用的setUp()方法,但是当使用solo_group()时,不会调用setUp()方法。我的测试,可以理解的失败,抛出有关空值的错误。是否有一个原因?我尝试使用solo_test()代替,并按照我的预期工作,调用setUp()方法,但不应该调用solo_group。
我感觉到另一个错误报告,但我想在此之前确认这不是预期的行为。
{更新}如上所述,这是一个例子,它不是所有测试代码,但它应该足够了。在这个例子中,我希望调用setUp()方法,但它不是。但是,如果我将solo_group转换为group,则确实如此。如果用solo_test()替换test(),并且用group()替换solo_group(),也会调用setUp()。
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);
});
});
});
}