Использование VS 2010, NUnit, Typemock, Entity Framework ...
У меня возникла странная проблема с использованием NUnit / Typemock.Я относительно новичок в мире тестирования, так что это может быть ошибкой новичка.Это проблема, с которой я сталкиваюсь.
- Тестовый проект скомпилирован.
- Запуск NUnit из Visual Studio
- Запуск тестов из клиентского приложения NUnit.Первый запуск, первый тест всегда завершается неудачей.
- Повторный запуск и тестирование проходит.
Не имеет значения, какой тест первый.Я могу выбрать конкретный тест.Если он запускается первым, произойдет сбой при первом выполненииОн перезапускается.
Это пример класса, в котором возникла проблема.Но класс не имеет значения.Какой бы тест ни выполнялся первым, возникает эта проблема.Код исключения был просто чем-то, что должно было проверить загрузку Typemock.Сбой при вызове WhenCalled.
[TestClass, Isolated]
public class FirstTest
{
[TestMethod]
public void TestMe()
{
Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
Assert.IsTrue(true);
}
}
Ниже приводится сообщение об ошибке.
HCSO.ESL.Test.Fakes.FirstTest.TestMe: TypeMock.ArrangeActAssert.NestedCallException: * WhenCalled не поддерживает использование вызова свойства в качестве аргумента.- Чтобы исправить этот проход ложным вместо AssemblyReader.IsDotNetFile
(конец сообщения об ошибке)
У кого-нибудь есть идея, почему первый тест всегда дает сбой, но при повторном запуске работает нормально?Что-то с тем, как загружаются сборки?
(Правка) Дополнительные сведения:
Версии: Typemock Isolator: 6.0.10.0 Visual Studio: 10.0.30319.1
Кроме того, я добавил упрощенный тестовый код.Таким образом, вы можете увидеть тестируемый код.И да, этот тест не пройден в первый раз, после этого проходит каждый прогон.
[TestClass, Isolated]
public class FirstTest
{
public static int DummyCall(int i)
{
return 0;
}
[TestMethod]
public void TestMe()
{
Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
//Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
Isolate.WhenCalled(() => FirstTest.DummyCall(-1)).WillReturn(1);
Assert.IsTrue(true);
}
}