Dá onde vem o args do program?
var leitorDeArquivos = new LeitorDeArquivo(caminhoDoArquivoASerLido: args[1]);
No meu está dando um erro que não era pra dar
private readonly LeitorDeArquivo _leitorDeArquivo = new LeitorDeArquivo("");
Dá onde vem o args do program?
var leitorDeArquivos = new LeitorDeArquivo(caminhoDoArquivoASerLido: args[1]);
No meu está dando um erro que não era pra dar
private readonly LeitorDeArquivo _leitorDeArquivo = new LeitorDeArquivo("");
Segue o meu teste:
using Alura.Adopet.Console.Comandos;
using Alura.Adopet.Console.Modelos;
using Alura.Adopet.Console.Servicos;
using Alura.Adopet.Console.Util;
using Moq;
using System.Threading.Tasks;
namespace Alura.Adopet.Testes;
public class ImportTeste
{
[Fact]
public async Task QuandoApiEstaNoArDeveRetornarListaDePet()
{
var leitorDeArquivo = new Mock<LeitorDeArquivo>(MockBehavior.Default, It.IsAny<string>());
var listaDePets = new List<Pet>();
var pet = new Pet(new Guid("456b24f4-19e2-4423-845d-4a80e8854a41"), "Lima", TipoPet.Cachorro);
listaDePets.Add(pet);
leitorDeArquivo.Setup(x => x.RealizaLeitura("")).Returns(listaDePets);
var httpClientPet = new HttpClientPet(new AdopetAPIClientFactory().GetHttpClient());
var import = new Import(httpClientPet, leitorDeArquivo.Object);
string[] args = { "import", "lista.csv" };
//Act
await import.ExecutaAsync(args);
//Assert
var listaPet = await httpClientPet.ListPetsAsync();
Assert.NotNull(listaPet);
}
}
Oi Igor! Como vai?
O args
que você está vendo no código é um array de strings que contém os argumentos passados para o programa quando ele é executado. Quando você executa um programa C# a partir da linha de comando, você pode passar argumentos para ele, e esses argumentos são acessados dentro do programa através do array args
.
Por exemplo, se você executar seu programa com o comando:
dotnet run import lista.csv
O array args
conterá dois elementos:
args[0]
será "import"
args[1]
será "lista.csv"
No seu caso, o erro pode estar ocorrendo porque você não está passando argumentos suficientes ao executar o programa. Se você tentar acessar args[1]
sem que ele tenha sido fornecido, o programa lançará uma exceção.
Para corrigir isso, certifique-se de que está passando os argumentos corretamente ao executar o programa. Se você está rodando o programa em um ambiente de desenvolvimento, como o Visual Studio, você pode configurar os argumentos de linha de comando nas propriedades do projeto.
Espero ter ajudado e bons estudos!