Поблочное тестирование с сетевым уверенным кодом

amix масштабирует громкость каждого входа на 1/n, где n = нет. активных входов. Это оценивается для каждого звукового кадра. Таким образом, когда вход выпадает, объем остальных входов уменьшается на меньшую величину, поэтому их объемы увеличиваются.

Изменение перехода dropout_ransition для всех более ранних входов, как это предлагается в других ответах, является одним из подходов, но я думаю, что это приведет к грубым модуляционным модуляциям. Лучший способ - нормализовать звук после amix.

В настоящее время у вас есть две опции: громкоговоритель или фильтр dynaudnorm . Последнее намного быстрее

Синтаксис заключается в том, чтобы добавить его после amix, поэтому

[aud11][aud12]amix=inputs=13:duration=first:dropout_transition=0,dynaudnorm"

Прочитайте документацию, если вы хотите настроить параметры для максимальной громкости или нормализации режима RMS. .etc

9
задан VanOrman 4 September 2008 в 18:00
поделиться

3 ответа

Принятие Вас означало, "Как делают я тестирую против вещей, которые твердо/невозможно дразнить":

Если у Вас есть класс, который "выходит и получает объект Win32_LogicalDisk для сервера" И делает что-то еще (использует объект 'Win32_LogicalDisk' в некотором роде), предполагая, что Вы хотите протестировать части класса, которые используют этот объект, можно использовать Внедрение зависимости, чтобы позволить Вам дразнить объект 'Win32_LogicalDisk'. Например:

class LogicalDiskConsumer(object):

    def __init__(self, arg1, arg2, LogicalDiskFactory)
        self.arg1=arg1
        self.arg2=arg2
        self.LogicalDisk=LogicalDiskFactory()

    def consumedisk(self):
        self.LogicalDisk.someaction()

Затем в Вашем коде модульного теста, передайте в 'LogicalDiskFactory', который возвращает фиктивный объект для 'Win32_LogicalDisk'.

5
ответ дан 4 December 2019 в 22:31
поделиться

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

2
ответ дан 4 December 2019 в 22:31
поделиться

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

Как пример, я недавно должен был разработать код для выполнения в стороннем продукте. Проблема состояла в том, что наш "партнер" будет делать компиляцию и интеграцию с их основным кодом: Мне не разрешили посмотреть на их код ни в какой форме! Моя стратегия состояла в том, чтобы создать очень простой эмулятор, который сделал то, что я думал, что их код сделал, на основе информации от их инженеров. Мы использовали язык, который помог переключить различные части эмулятора в и из каждой сборки, таким образом, я мог сделать огромный объем тестирования прежде, чем вовлечь нашего партнера для создания каждого нового повторения.

Я использовал бы тот же метод снова, как программные проблемы в том конкретном продукте - о порядке величины меньше, чем в нашем следующем самом надежном продукте!

1
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: