2014-11-10 2 views
1

Если я изменить настройки проигрывания внутри метода испытаний, например:Являются ли проверки воспроизведения постоянными между тестами?

[TestMethod] 
public void MyTest() 
{ 
    Playback.PlaybackSettings.AlwaysSearchControls = true; 
} 

бы, что установка сохраняется между моими тестами? Или он будет сброшен?

ответ

1

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

EDIT: Обратите внимание, что «один тест» относится к одному [TestMethod]

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

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

+0

поэтому короткий ответ заключается в том, что он сохраняется? – Chin

+0

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

+0

Моя ситуация обратная: я предполагаю, что она не сохраняется, но поскольку я не могу быть уверен в этом, мне нужно очистить ее после каждого теста. Если я точно знаю, что это не сохраняется, тогда мне не нужно тратить время на уборку. – Chin

0

Ранее принятый ответ не очень точен и не специфичен для тестов кодированного интерфейса, поэтому я решил добавить более точный ответ.

Параметры воспроизведения не сохраняются между тестами.

На самом деле, я проверил поведение, чтобы убедиться, запустив эти два теста в одном тестовом прогоне:

[TestMethod] 
    public void test1() 
    { 
     Assert.IsFalse(Playback.PlaybackSettings.AlwaysSearchControls); 
     Playback.PlaybackSettings.AlwaysSearchControls = true; 
    } 

    [TestMethod] 
    public void test2() 
    { 
     Assert.IsFalse(Playback.PlaybackSettings.AlwaysSearchControls); 
     Playback.PlaybackSettings.AlwaysSearchControls = true; 
    } 

Оба испытания прошли. :)

Смежные вопросы