none
BUG - Teste assíncrono? RRS feed

  • Pergunta

  • olá pessoal,

    Tenho um seguinte teste assíncrono:

     
    [TestMethod()] 
    public void TesteAsynchronous() 
        using (ManualResetEvent manualResetEvent = new ManualResetEvent(false)) 
        { 
            WaitCallback waitCallback = 
                (state) => 
                {                         
                    Assert.AreEqual("ERRO", state); 
                    manualResetEvent.Set();                        
                }; 
     
            ThreadPool.QueueUserWorkItem(waitCallback, "TESTE"); 
            manualResetEvent.WaitOne(); 
        }            





     
    Quando rodo esse teste o visual studio mostra a seguinte menssagem:


    "VSTestHost.exe has stopped working

    A problem caused the program to stop working correctly."

    Eu já até achei uma solução:

    [TestMethod()] 
    public void TesteAsynchronous() 
        bool areEqual = false
        using (ManualResetEvent manualResetEvent = new ManualResetEvent(false)) 
        { 
            WaitCallback waitCallback = 
                (state) => 
                { 
                    areEqual = "ERRO".Equals(state); 
                    manualResetEvent.Set();                        
                 }; 
     
            ThreadPool.QueueUserWorkItem(waitCallback, "TESTE"); 
            manualResetEvent.WaitOne(); 
            Assert.IsTrue(areEqual); 
        }            

    Existe uma forma mais elegante para se tratar métodos assíncronos no Visual Studio Team System 2008?

    Obrigado Mateus Bahis Vieira.
    sexta-feira, 6 de março de 2009 13:05

Todas as Respostas


  •   Mateus,

      Não vou poder te ajudar no momento pq estou começei a trabalhar com o VSTS2008 agora, mas quero te pedir ajuda se puder.
       Estou tentando fazer testes unitários em C++ no Vsts2008 mas não estou conseguindo devido ao fato de que o código não
    está compilado com CRL/safe. Ou seja para que o teste unitário seja realizado é necessário que o compilador seja o CLR/safe.
     Você já viu algo parecido, tem alguma experiência com isso?...Pelo que pesquisei somente em testes unitários em c++ é necessário que o código seja compilado com esse clr/safe. 

       Obrigado

    Humberto A. Nascimento
    quinta-feira, 25 de fevereiro de 2010 19:43
  • Oi Mateus,

    Ainda não parei para pensar numa possível codificação mais elegante para seu cenário, porém, você já deu uma olhada no event viewer para checar se há alguma entrada de erro que detalha mais esse problema? Se tiver, posta aqui pra gente.

    []'s


    Ricardo Serradas
    Team System in a nutshell - http://blog.ricardoserradas.net
    quinta-feira, 25 de março de 2010 10:02