2012-06-13 3 views
1

Почему этот код вызывает ShimNotSupportedException в операторе?Mes Fakes Framework, NotSupportedException

ShimStreamReader.AllInstances.EndOfStreamGet = ((s)=>calls < 1); 

[TestMethod] 
     public void GetAllLinesFromFile__() 
     { 
      int calls = 0; 

      using (ShimsContext.Create()) 
      { 
       ShimStreamReader.AllInstances.EndOfStreamGet = ((s)=>calls < 1); 
       ShimStreamReader.AllInstances.ReadLine = (s) => 
                  { 
                   calls++; 
                   return ";;;;;;;;;;"; 
                  }; 
       var streamFake = new ShimStreamReader(); 
       var obj = new MyFile(streamFake, ';'); 

       Assert.IsTrue(obj.GetAllLinesFromFile().Count() == 1); 
      } 

     } 

ответ

0

Я провел ваш код и отлично работал в VS 2012 RC. Я столкнулся с подобной проблемой, когда я открыл решение в VS 11 Beta, которое было создано в VS 2010. Единственным обходным решением, которое я выяснил, было создание нового решения в VS 11 Beta.

3

Может быть, вы используете тест от Resharper или какого-либо другого испытателя?

Я написал несколько связанных с · блоги, · это, которые могут быть полезны:

http://blog.degree.no/2012/09/visual-studio-2012-fakes-shimnotsupportedexception-when-debugging-tests/

http://blog.degree.no/2012/09/unit-testing-visual-studio-2012-fakes-in-team-city/

+0

Да, это исключение является типичным при попытке запуска Подделки испытания в тестовой упряжи третьей стороны. –

0

Одна из возможных причин отсутствующего из fakesconfig файлов, которые должны были быть сгенерированные по с вашим xxx.fakes.dll.

Я использовал центральный проект для создания поддельных сборок и использовал другие проекты, которые зависят от центрального проекта, чтобы потреблять генерируемые сборки Fake.

Назовем проект Fake сборщика FOO.

Я столкнулся с исключением ShimNotSupportedException. После некоторого расследования (несколько дней!) Я обнаружил, что файлы fakesconfig не копируются вместе с Fake-ассамблями в папку, где находится FOO.dll. После копирования файлов fakesconfig там мои тесты прошли.

Надеюсь, это поможет.

0

Другой случай, когда это происходит, когда у вас установлен Typemock и он включен.

Отключает TypeMock -> Suspend Дразнящего