Closed JessikaFujimura closed 4 years ago
Ola Jessika, tudo bem? Consegue me passar seu repositorio para eu dar uma olhada e te ajudar a identificar onde esta o problema?
Oi Anderson! Estou bem sim e você? Acabei de subir pro github. Segue link do repositório https://github.com/JessikaFujimura/SistemaAlunos
Jessika nao esta disponivel pra mim, segue print
Nossa, esqueci de mudar para público. Já mudei. Desculpas.
Jessika você vai precisar fazer duas alterações para funcionar.
1- No arquivo Context.cs o metodo SetModified deve ficar assim:
public virtual void SetModified(object entity)
2- No construtor da sua classe de teste você vai precisar criar um DbContextOptionsBuilder vai ficar assim:
public CategoriasControllerTest()
{
_mockSet = new Mock<DbSet<Categoria>>();
var builder = new DbContextOptionsBuilder<Context>();
var options = builder.Options;
_mockContext = new Mock<Context>(options);
_categoria = new Categoria { Id = 1, Descricao = "Teste Categoria" };
_mockContext.Setup(m => m.Categorias).Returns(_mockSet.Object);
_mockContext.Setup(m => m.Categorias.FindAsync(1))
.ReturnsAsync(_categoria);
_mockContext.Setup(m => m.SetModified(_categoria));
_mockContext.Setup(m => m.SaveChangesAsync(It.IsAny<CancellationToken>()))
.ReturnsAsync(1);
}
Provavelmente essa segunda alteração se deve a diferença de versao do .NET Core em que eu usei o 3.0 e você 3.1, mas com isso ja deve funcionar.
Deu certo! Muito obrigada pela ajuda!
Olá Anderson! Estou fazendo o curso de desenvolvimento de aplicações .NET da Digital Innovation One. Estava codando junto com o vídeo, ai tive um erro na hora de rodar o teste, já procurei no google, só que não nenhuma das soluções adiantaram. O erro foi o seguinte:
CursoTest.CategoriasControllerTest.Get_Categoria Fonte: CategoriasControllerTest.cs linha 37 Duração: 1 ms
Mensagem: System.NotSupportedException : Unsupported expression: m => m.SetModified(CategoriasControllerTest._categoria) Non-overridable members (here: Context.SetModified) may not be used in setup / verification expressions. Rastreamento de Pilha: Guard.IsOverridable(MethodInfo method, Expression expression) InvocationShape.ctor(LambdaExpression expression, MethodInfo method, IReadOnlyList
1 arguments, Boolean exactGenericTypeArguments) ExpressionExtensions.<Split>g__Split|4_1(Expression e, Expression& r, InvocationShape& p) ExpressionExtensions.Split(LambdaExpression expression) Mock.SetupRecursive[TSetup](Mock mock, LambdaExpression expression, Func
3 setupLast) Mock.Setup(Mock mock, LambdaExpression expression, Condition condition) Mock1.Setup(Expression
1 expression) CategoriasControllerTest.ctor() linha 30Por gentileza, gostaria da sua ajuda! Pois pretendo utilizar essa aplicação no meu repositório.
Desde já agradeço a atenção!