Pergunta

Eu uso um leitor de stream para importar alguns dados e no momento codifico um pequeno arquivo de amostra no teste para fazer o trabalho.

É sensato usar objetos simulados com isso e como?

Foi útil?

Solução

Não vejo nenhum motivo para zombar do StreamReader, a menos que você esteja criando uma classe derivada do StreamReader.Se você precisar fornecer entrada de teste via StreamReader, basta ler alguns dados predefinidos de qualquer fonte adequada.

Outras dicas

StreamReader é uma classe concreta, muitos sistemas de simulação não permitirão que você simule.Isolador TypeMock irá, no entanto.

Você pode querer zombar dele se precisar forçar a vinda de erros do leitor, em vez de apenas fornecer dados para sua classe em teste.Se você não precisa dessa funcionalidade, você pode estar tão à frente construindo um StreamReader de algum outro Stream, como um MemoryStream - dessa forma, você não precisa ir ao disco para obter seus dados.

Ao testar código que depende de streams, streamreaders e streamwriters, geralmente uso o objeto memorystream para teste.Nenhuma estrutura de simulação é necessária aqui.

Você pode usar um método de fábrica para retornar um TextReader que pode ser o objeto simulado ou um StreamReader real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top