Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

696
Views
¿Autofixture.Create<int> puede devolver un valor negativo?

En realidad, el siguiente método siempre devuelve un número entero positivo:

 var fixture = new Fixture(); var someInt = fixture.Create<int>();

¿Es posible que algún día la función evolucione y comience a devolver un número entero negativo? ¿O hay una razón oficial por la que en realidad devuelve un número entero siempre positivo?
Si no, ¿hay alguna documentación escondida en algún lugar que lo diga?

Para seguir usando autofixture, me gustaría saber si se prevén cambios.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El autor de Autofixture habla de esto en su blog . Esta publicación especifica que la implementación actual siempre devolverá números positivos ya que se consideran "más seguros" en general, por lo que no creo que esto cambie en el futuro cercano.

El objetivo de AutoFixture es generar datos de prueba anónimos. Estás pidiendo un número entero que puede ser un número negativo. Para estar 100% seguro, no confiaría en la suposición implícita de que todas las implementaciones futuras solo devuelven números positivos. Puede hacer esto más explícito proporcionando un SpecimenBuilder personalizado:

fixture.Customizations.Add(new PositiveIntegerBuilder());

Puede encontrar más información sobre los constructores de especímenes personalizados aquí .

over 4 years ago · Santiago Trujillo Report

0

Como señala el usuario prgmtc , una opción es a través de un ISpecimenBuilder personalizado.

Otra opción es proporcionar un rango personalizado, mediante el uso de la clase RandomNumericSequenceGenerator incorporada, como se muestra a continuación:

 [Fact] public void FixtureCreatesNegativeNumbers() { var fixture = new Fixture(); fixture.Customizations.Add( new RandomNumericSequenceGenerator(-900, -100)); var i = fixture.Create<int>(); // Prints -> -711 var l = fixture.Create<long>(); // Prints -> 618 var f = fixture.Create<float>(); // Prints -> -78.0 }
over 4 years ago · Santiago Trujillo Report

0

var i = fixture.Create<uint>();

Solo si el código original que se está probando esperaba un parámetro de tipo uint.

¿ var i = Math.Abs(fixture.Create<int>()) para usted?

Para responder a la pregunta original

  • int por definición puede ser negativo.
  • fixture.Create, por definición, no debería devolver int negativo.

Asumiría que los autores de AutoFixture no cambiarán algo tan crucial tan a la ligera. Yo usaría fixture.Create<int>

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!