Странное поведение NUnit
От: Xenia США  
Дата: 09.03.05 04:31
Оценка:
Извиняюсь за корявость вопроса, я вообще не QA а просто понадобилось мне тут наваять маленький unit-test И столкнулась с таким явлением..
Имеем проект, состоящий из нескольких модульных тестов. Один из тестов имеет примерно такой код



....

MyClass obj;

[TestFixtureSetUp]
public void Init()
{
  obj = new MyClass();
}

[TestFixtureTearDown]
public void Destroy()
{
  
}

[Test]
public void IsValid()
{
   return obj.IsValid();
}

[Test]
public void Test1()
{
   ...........
}

...........


Вобщем, тест этот валится еще при создании объекта (в Init), по AccessDenied в силу определенных причин. Далее происходит следующее. Если я ранаю каждый тест в проекте отдельно, то все номрально, те кто должны были упасть упали, те кто не должны — не упали. Если же проранать все тесты которые в проекте сразу, то тесты, идущие вслед за этим, — падают без всякой уважительной причины по все тому же AccesDenied. Лечитcя заменой TestFixtureSetup на просто Setup, но это не совсем то что мне нужно, мне таки нужно TestFixtureSetup. У меня есть кое-какие предположения относительно того почему так происходит, но нету предположений как бороться?
Re: Странное поведение NUnit
От: ComposteR Россия  
Дата: 09.03.05 10:52
Оценка:
Здравствуйте, Xenia, Вы писали:

X>Извиняюсь за корявость вопроса, я вообще не QA а просто понадобилось мне тут наваять маленький unit-test И столкнулась с таким явлением..

X>Имеем проект, состоящий из нескольких модульных тестов. Один из тестов имеет примерно такой код


X>

X>....

X>MyClass obj;

X>[TestFixtureSetUp]
X>public void Init()
X>{
X>  obj = new MyClass();
X>}

X>[TestFixtureTearDown]
X>public void Destroy()
X>{
  
X>}

X>[Test]
X>public void IsValid()
X>{
X>   return obj.IsValid();
X>}

X>[Test]
X>public void Test1()
X>{
X>   ...........
X>}

X>...........
X>


X>Вобщем, тест этот валится еще при создании объекта (в Init), по AccessDenied в силу определенных причин. Далее происходит следующее. Если я ранаю каждый тест в проекте отдельно, то все номрально, те кто должны были упасть упали, те кто не должны — не упали. Если же проранать все тесты которые в проекте сразу, то тесты, идущие вслед за этим, — падают без всякой уважительной причины по все тому же AccesDenied. Лечитcя заменой TestFixtureSetup на просто Setup, но это не совсем то что мне нужно, мне таки нужно TestFixtureSetup. У меня есть кое-какие предположения относительно того почему так происходит, но нету предположений как бороться?


TestFixtureSetup — это метод, вызывающийся один раз для всей TestFixture. Просто Setup вызывается перед каждым Test Case.
Таким образом в вашем случае все тестовые методы пытаюстся работать с данными, подготовленными один раз и испорченными после первого падения.

Еще одно маленькое замечание. У вас метод IsValid() объявлен как void, но при этом возвращает занчение obj.IsValid();. Здесь явно что-то не то.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
-=[ComposteR]=-
Re[2]: Странное поведение NUnit
От: Xenia США  
Дата: 10.03.05 03:33
Оценка:
Здравствуйте, ComposteR, Вы писали:


CR>TestFixtureSetup — это метод, вызывающийся один раз для всей TestFixture. Просто Setup вызывается перед каждым Test Case.

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

Это понятно. Проблема то в том, что в моем случае валятся другие TextFixtures методы которых вызываются после

CR>Еще одно маленькое замечание. У вас метод IsValid() объявлен как void, но при этом возвращает занчение obj.IsValid();. Здесь явно что-то не то.

Да, я просто по памяти и на больнцю голову писала этот псевдо-код, там все нормально естественно...
Re[3]: Странное поведение NUnit
От: ComposteR Россия  
Дата: 10.03.05 06:42
Оценка:
Здравствуйте, Xenia, Вы писали:

X>Здравствуйте, ComposteR, Вы писали:



CR>>TestFixtureSetup — это метод, вызывающийся один раз для всей TestFixture. Просто Setup вызывается перед каждым Test Case.

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

X>Это понятно. Проблема то в том, что в моем случае валятся другие TextFixtures методы которых вызываются после


CR>>Еще одно маленькое замечание. У вас метод IsValid() объявлен как void, но при этом возвращает занчение obj.IsValid();. Здесь явно что-то не то.

X>Да, я просто по памяти и на больнцю голову писала этот псевдо-код, там все нормально естественно...

Понятно. Извините, просто не понял по вашему первому посту. В вашем случае дистанционно без кода не разберешься. В моей практике такого не случалось. Очевидно, что ваш код делает что-то такое, что вызывает такое поведение NUnit.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
-=[ComposteR]=-
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.