Как это проверить? - PullRequest
       23

Как это проверить?

3 голосов
/ 28 июля 2010

В последнее время я играл с .NET SpeechSynthesizer.

, и у меня есть метод, который принимает строку и создает файл WAV из этой строки.но как мне выполнить юнит-тестирование этого метода?

мне кажется, что в такой ситуации юнит-тестирование не может вам помочь.я прав?

Ответы [ 3 ]

4 голосов
/ 28 июля 2010

Что вы хотите проверить здесь?

Записывает ли .NET SpeechSynthesizer API волновой файл или выводит что-то в ваш код, записывающий волновой файл?

Это тестированиетак же, как тестирование любой другой зависимости.Сначала изолируйте его (тонкая и насмешливая оболочка вокруг API-интерфейса NET SpeechSynthesizer).Затем проверка вашего кода дает оболочке то, что, по вашему мнению, должно быть предоставлено, и действует на любые возвращаемые данные так, как они должны действовать.Оставьте тестирование .NET SpeechSynthesizer API кому-то другому (создателям API).

Тестирование оболочки - это тест интеграции (не позволяйте имени помешать вам сделать это в поместье TDD, если это вашевещь), и вам, скорее всего, придется потерять то, что вы проверяете («Speak (строка) приводит к росту выходного файла»).Но опять же вам не нужно проверять работоспособность API.

2 голосов
/ 28 июля 2010

Когда у кода есть такие побочные эффекты, это не чистый тест слоя, но вы можете определенно проверить побочные эффекты. Запишите результат в вашу временную директорию. Убедитесь, что файл действительно записан. Проверьте формат, загрузив его как волновой файл.

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

0 голосов
/ 28 июля 2010

Вы получили доступ к любому программному обеспечению для распознавания речи? Возможно, вы могли бы попытаться научить его слушать сгенерированную речь ....?

Или вы можете хотя бы проверить, что формат правильный, а не файл с нулевым байтом, я думаю ...

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

...