No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
14 Hrs
17 Min
58 Seg

Tipos de Assert en xUnit parte 2

8/19
Recursos

Aportes 9

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Estaría genial poder ampliar el video a lo largo de la ventana del explorador como el modo cine en youtube
 [Fact]
        public void GetStringLength()
        {
            //Arrange
            var strStringManipulation = new StringOperations();
            //Act 
            var word = "New word";
            var result = strStringManipulation.GetStringLength(word);
            //Assert
            Assert.Equal(word.Length, result);
        }


        [Fact]
        public void TruncateString_Exception()
        {
            //Arrange
            var strStringManipulation = new StringOperations();
            //Act //Assert
            Assert.ThrowsAny<ArgumentOutOfRangeException>(() => strStringManipulation.TruncateString("Test",0));
        }
mi aporte\[Fact] public void GetStringLength() { var strOperations = new StringOperations(); var palabra = "hola"; var result = strOperations.GetStringLength(palabra); Assert.Equal(palabra.Length, result); } \[Fact] public void TruncateString\_Except() { var strOperations = new StringOperations(); Assert.Throws\<ArgumentOutOfRangeException>( () => strOperations.TruncateString("null", 0) ); } \[Fact] public void TruncateString\_MaxLength() { var strOperations = new StringOperations(); var palabra = "Hola Platzi"; var result = strOperations.TruncateString(palabra, 100); Assert.Equal(palabra, result); } \[Fact] public void TruncateString() { var strOperations = new StringOperations(); var palabra = "Hola Platzi"; var maxlengt = 4; var result = strOperations.TruncateString(palabra, maxlengt); Assert.Equal(palabra.Substring(0, maxlengt), result); } ```c# [Fact] public void GetStringLength() { var strOperations = new StringOperations(); var palabra = "hola"; var result = strOperations.GetStringLength(palabra); Assert.Equal(palabra.Length, result); } [Fact] public void TruncateString_Except() { var strOperations = new StringOperations(); Assert.Throws<ArgumentOutOfRangeException>( () => strOperations.TruncateString("null", 0) ); } [Fact] public void TruncateString_MaxLength() { var strOperations = new StringOperations(); var palabra = "Hola Platzi"; var result = strOperations.TruncateString(palabra, 100); Assert.Equal(palabra, result); } [Fact] public void TruncateString() { var strOperations = new StringOperations(); var palabra = "Hola Platzi"; var maxlengt = 4; var result = strOperations.TruncateString(palabra, maxlengt); Assert.Equal(palabra.Substring(0, maxlengt), result); } ```
Una duda, en mi caso no cree un objeto en cada clase si no que cree la instancia en el constructor para reutilizar codigo...enteindo que es una buena practica por la misma razon y ademas evita errores por otro lado me gustaria saber si esto es correcto segun las pruebas o puede haber alguna complicacion...gracias ejemplo:] ```c# public class StringOperationsTests { private readonly StringOperations stringOperations; public StringOperationsTests() { stringOperations = new StringOperations(); } [Fact] public void ConcatenateStrings() { var result = stringOperations.ConcatenateStrings("Perpetuo", "Beats"); Assert.Equal("Perpetuo Beats", result); } [Fact] public void ReverseString() { var result = stringOperations.ReverseString("Perpetuo Beats"); Assert.Equal("staeB outepreP", result); } ```public class StringOperationsTests { private readonly StringOperations stringOperations; public StringOperationsTests() { stringOperations = new StringOperations(); } \[Fact] public void ConcatenateStrings() { var result = stringOperations.ConcatenateStrings("Perpetuo", "Beats"); Assert.Equal("Perpetuo Beats", result); } \[Fact] public void ReverseString() { var result = stringOperations.ReverseString("Perpetuo Beats"); Assert.Equal("staeB outepreP", result); }
una duda, en mi caso no cree un objeto para cada prueba si no que cree la instancia en el contructor de la clase, y funciona bien, entiendo que esto es una buena practica para re utilizar codigo y no repetir por otro lado me gustaria saber si es una buena opcion o por alguna razon es mejor crear un objeto en cada prueba? ejemplo: `public class StringOperationsTests` `{` ` private readonly StringOperations stringOperations;` ` public StringOperationsTests()` ` {` ` stringOperations = new StringOperations();` ` }` ` [Fact]` ` public void ConcatenateStrings()` ` {` ` var result = stringOperations.ConcatenateStrings("Perpetuo", "Beats");` ` Assert.Equal("Perpetuo Beats", result);` ` }` ` [Fact]` ` public void ReverseString()` ` {` ` var result = stringOperations.ReverseString("Perpetuo Beats");` ` Assert.Equal("staeB outepreP", result);` ` }`
Pero la funcion GetStringLength ya tiene tipado estático y no acepta null, además hasta el roslyn de visual studio te avisa que no puede pasarle null, porque validar si el parámetro str es null? Yo pienso que el siguiente código es válido si el str acepta string y null, pero este no es el caso. \~~~ public int GetStringLength(string str) { if(str is null) { throw new ArgumentNullException(); } return str.Length; } \~~~ Este sería la función que acepta null en el parámetro: \~~~ public int GetStringLength(string? str) { if(str is null) { throw new ArgumentNullException(); } return str.Length; } \~~~

Así quedaría el Test para la función TruncateString.

 [Fact]
 public void TruncateString_Exception()
 {
            var strOperations = new StringOperations();

            Assert.ThrowsAny<ArgumentOutOfRangeException>(()=>strOperations.TruncateString("Platzi", -2));

  }

Efectivamente el test es aprobado.

Así quedaría la prueba que no es una Excepción.

    [Fact]
    public void GetStringLength()
    {
            var strOperations = new StringOperations();

            var result = strOperations.GetStringLength("Platzi");

            Assert.True(result > 0);
        }

El test saldría así.

 [Fact]
        public void RemoveWhitespace()
        {
            var strOperations = new StringOperations();

            var result = strOperations.RemoveWhitespace("1    2 3     4  5    6 ");
            Assert.Equal("123456", result);
        }

Así quedó mi test