Tenho IValidatableObject com o método Validate. Como escrever teste unitário para este objeto e este método? (Eu uso xUnit). Como simular contexto? Código do objeto abaixo.
Nota: esse objeto tem um campo enum.
public class Settings: IValidatableObject
{
[Required]
public int Id { get; set; }
public string Name { get; set; }
public Category Category { get; set; } //enum
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (!Enum.IsDefined(typeof(Category), Category))
{
yield return new ValidationResult("Invalid Category", new[] { nameof(Category) });
}
}
}
Na sua classe, há apenas
Validate
um método que tem lógica, que é útil para ser testado. Aqui está um exemplo de como ele poderia ser configurado:Você só precisa ajustar a criação de
ValidationContext
acordo com a postagem vinculada