2012-05-23 4 views
0

Я работаю над настройкой игры в ActionScript. Существует несколько модулей приложения. Приложение интенсивно использует данные. Чтобы загрузить приложение, вам нужно загрузить много других SWF-файлов, JSON и т. Д. Я не хочу тестировать биты пользовательского интерфейса (на данный момент). То, что я хочу, чтобы проверить это:Как использовать те же предварительные данные для тестирования нескольких модулей большого приложения?

  • модуля не падает
  • я получаю здравомыслящих ответы

Я не связанное с пользовательским интерфейсом и визуальными аномалиями.

Я хочу написать отдельные тестовые объекты для модулей и отдельных классов тестов. Быть более организованным.

Вопрос:

Для того, чтобы проверить даже самые простые функции, которые мне нужны данные X, Y, Z, чтобы быть загружен. Данные X, Y, Z являются общими для всех модулей.

Как написать разные классы тестов и комплекты и предварительно загрузить данные только один раз и использовать эту копию данных с помощью тестов. Большинство данных не изменяется в ходе тестов.

+2

Вы должны подумать о переосмыслении своей стратегии, если только это не действительно данные, которые вы хотите проверить, а не логика игры. Вы ничего не говорите об этом контексте, поэтому я предполагаю, что есть несколько модулей с логикой игры. Чтобы тестировать каждый отдельно, обычно лучше всего фальсифицировать * все * зависимости и проверять только логику одного модуля за раз. Ограниченный набор данных в тестовом двойном, содержащий действительный результат, и один для каждого случая краев и сбоев должен быть достаточным. Вам не потребуется загрузка и т. Д. - это разные функции, которые необходимо тестировать в отдельном тесте! – weltraumpirat

+0

Данные, необходимые для испытаний, представляют собой очень большой набор. Я не хочу делать ложные данные. Вместо этого используйте реальные данные и загрузите их с серверов. Вопрос заключается в том, как однажды данные загружаются, как их повторно использовать в разных тестовых классах, вместо того, чтобы их инициализировать в каждом тестовом классе. –

+0

Нет, вопрос в следующем: зачем вы хотите использовать живые данные для своих тестов? Вы сказали, что ваши тесты должны доказать правильность ваших модулей - и для этого вы должны использовать макет данных. Если, с другой стороны, вы хотите доказать, что ваши * данные * верны, вы должны настроить тестовую программу, которая загружает все данные, а затем запускает набор вычислений - в * добавлении * для модульных тестов, потому что вы все еще нужно знать, что ваша программа верна. Идея автоматизированного тестирования состоит в том, чтобы тестировать каждую часть вашего приложения отдельно, так что, когда тест терпит неудачу, вы точно знаете, где проблема. – weltraumpirat

ответ

0

Обычно я создаю одну или несколько тестовых версий каждого объекта данных. Класс, в котором я нуждаюсь, является субклассом объекта данных со всеми заполненными свойствами.

Таким образом, в [До] метода, я мог бы настроить их так:

testVO = new TestMyVO(); 

и в тестовых случаях:

myObjectThatNeedsAVO.myVO = testVO; 

Таким образом, все случаи испытаний, которые нуждаются в MyVO, я может затем повторно использовать TestMyVO. Если мне нужны мультипликаторы, я могу создать фабрику, которая может создать один из нескольких, а затем вызвать тот, который мне особенно нужен, чтобы заниматься тем, что я осуществляю.

+0

Теперь, представьте, что testvo является синхронизацией с 5-минутным окном загрузки. Я бы не хотел делать testVO = new TestMyVO() в каждом классе каждого тестового класса. Но только один раз и используйте это во всех тестовых классах. Как мне это сделать? –

+1

У вас нет. В этом-то и дело. Рассмотрим, во-вторых, что в вашем наборе данных есть ошибка ... Теперь ** все ** ваши тесты потерпят неудачу, хотя программа работает правильно. То же самое произойдет, если сеть опустится. Вы бы не поняли причину проблемы. Такая настройка теста вам не поможет - вы можете также запустить приложение и использовать отладчик. – weltraumpirat

+0

Я полностью согласен с вами в этой части. Но вот то, что мои данные являются вещами, которые, как я уже знал, являются истинными, не меняются (не для того, что мне нужно проверить) считают, что у меня 1,3,5, и я тестирую функцию добавления 1,3 , 5 будет постоянным всегда. Мне нужно убедиться, что в новой сборке я не испортил функцию добавления и всегда возвращает 1 + 3 = 5. Я знаю вход и выход, просто нужно убедиться, что функция верна. –