Конечно, ошибка должна сначала устанавливайте :-)
Тогда вы сделаете это, как говорит Джастин, используя не-анонимные функции, которые вы можете явно активировать. Мне показалось, что это лучший способ обеспечить максимальную гибкость, не обременяя единую тестовую библиотеку множеством запутанной логики установки/разрыва.
Если вы хотите сделать тест ванной установки/демонтаж, вы могли бы сделать это с начальным/финальным «тестом» в группе:
group('test suite',() {
test('Set up suite',() { ... });
test('Test 1',() { ... });
...
test('Test n',() { ... });
test('Tear down suite',() { ... });
});
Это не идеальное, но это решение.
Стоит отметить, что внутри группы фактически не представлены как иерархия. Все, что мы действительно делаем, это держать стек с текущими функциями setUp/tearDown, поэтому мы можем связать каждый тестовый пример с соответствующими и конкатенировать имена групп и имя теста, чтобы сделать окончательное имя для тестового примера. Мы не строим структуру древовидных данных, поэтому у нас нет хорошего способа делать upcalls неявно (мы могли бы создавать замыкания «на лету», которые повышали бы один уровень, и использовать их как фактические функции setUp/tearDown, но это немного Fugly).
Не похоже. Вот что сказал Грам: http://code.google.com/p/dart/issues/detail?id=8157 Запросить файл-запрос? –
Спасибо Сет. Я подал запрос. –