Estou tentando testar algum código fora do meu controle que verifica a existência de um WebException
e reage de forma adequada. Estou tentando gerar um shim para WebException
, mas continuo recebendo um
Microsoft.QualityTools.Testing.Fakes.Shims.ShimNotSupportedException.
Aqui está a fonte do teste:
[TestMethod]
public async Task Search_WebException404Ignored()
{
using (ShimsContext.Create())
{
mockApiSettings
.Setup(p => p.ListApiUrl)
.Returns("http://fakeUrl/?value={0}{1}");
var exception = new ShimWebException
{
ResponseGet = () => new ShimHttpWebResponse {StatusCodeGet = () => HttpStatusCode.NotFound},
};
mockServiceProxy
.Setup(m => m.CallServiceAsync(It.IsAny<Uri>(), RequestMethodType.GET, null))
.ThrowsAsync(exception);
var items = await service.Search("ListName_0", new[] {"ListValue_0", "ListValue_0"});
}
}
Eu atualizei o arquivo System.fakes da seguinte forma:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="System" Version="4.0.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="System.Net.WebRequest!"/>
<Add FullName="System.Net.HttpWebRequest!"/>
<Add FullName="System.Net.HttpWebResponse!"/>
<Add FullName="System.Net.WebException!"/>
</ShimGeneration>
</Fakes>
Não parece ajudar. Será porque também estou usando o MOQ?
O projeto de teste não usa um .testSettings
arquivo conforme mencionado em outras postagens. Usando 64 bits para testes de origem e de unidade.
Estou usando o Visual Studio 2015 Enterprise e o Microsoft.QualityTools.Testing.Fakes 12.0.0.0. Nenhum aviso é mostrado na saída para a geração de calços para esses itens.
Eu tive um erro semelhante quando meu projeto de teste de unidade está referenciando Microsoft.QualityTools.Testing.Fakes
12.0 e executando alguns testes com Shims
no VS2015.
Consegui consertar o problema atualizando aquele arquivo DLL para o da pasta VS2015 Public Assemblies, no meu caso é %PROGRAMFILES(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.Testing.Fakes.dll
.
Não precisei regenerar minha referência System.4.0.0.0.Fakes depois de atualizar o arquivo DLL e tenho exatamente o mesmo arquivo System.fakes que você incluindo !
no FullName
.
Observação: também é uma boa ideia verificar a versão do seu Microsoft.VisualStudio.QualityTools.UnitTestFramework
e atualizá-la para a versão 14.0 também.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras