Crear clases y pruebas de C #

En este tutorial, vamos a iniciar los inicios de una aplicación de tipo CRM ficticia. Un sistema de gestión de relaciones con los clientes simplemente realiza un seguimiento de los clientes y sus datos relacionados. Usaremos Visual Studio para crear una nueva clase de Cliente y luego definiremos las propiedades que necesitamos para un cliente. Estos incluirán cosas como el nombre, apellido, dirección de correo electrónico, etc. En el camino, agregaremos un proyecto de prueba a nuestra solución de estudio visual. En ese proyecto, crearemos una clase de prueba adjunta para la clase Cliente para asegurarnos de que funcione correctamente. Empecemos.


Agregar un nuevo proyecto

Para comenzar a construir nuestra nueva clase Customer, primero necesitamos un nuevo proyecto en Visual Studio. Podemos hacer clic en Archivo-> Nuevo-> Proyecto para abrir el asistente de nueva clase.
archivo de estudio visual nuevo proyecto

Una vez allí podemos elegir un nombre tanto para la solución como para el proyecto. El nombre del proyecto es CRMBIZ y la solución es simplemente CRM. CRMBIZ son las siglas de "Customer Relationship Manager Business Layer" y, por supuesto, CRM simplemente significa "Customer Relationship Manager".
nombre de la solución de Visual Studio

Una vez solucionado todo esto, se nos proporciona un nuevo archivo de clase para empezar en el editor y el explorador de soluciones.
nueva clase creada


Construyendo una clase de cliente

Cambiemos el nombre de esa clase predeterminada a Customer.cs y construyamos la clase como vemos a continuación. Nuestro objetivo aquí es crear una Clase que pueda representar a un cliente en nuestro sistema CRM. Podemos ver a los siguientes miembros de la clase.

  • apellido
  • Apellido
  • Nombre de pila
  • Dirección de correo electrónico
  • Identificación del cliente
  • Nombre completo


Cree una prueba unitaria para la clase

Queremos asegurarnos de que nuestra clase funcione mediante una prueba de unidadTiene sentido crear una nueva carpeta para contener el proyecto de prueba unitaria. Así que seguimos adelante y hacemos clic con el botón derecho en el nombre de la solución, luego elegimos Agregar-> Nueva carpeta de solución y lo llamamos Prueba.
visual studio agregar nueva carpeta de solución

Una vez que esté completo, podemos agregar un nuevo proyecto de prueba en la nueva carpeta de la solución. Haga clic con el botón derecho en la carpeta Prueba, luego elija Agregar-> Nuevo proyecto y elija la opción Prueba unitaria.
agregar nuevo proyecto a la solución visual studio

En nuestro caso lo llamamos CRMBIZ.Test. Puedes nombrar el tuyo como quieras. Para que el proyecto de prueba realmente pueda probar el código en nuestro proyecto principal, necesitamos hacer referencia a un ensamblado del proyecto principal. Esto se puede hacer haciendo clic derecho en el nodo Referencias del proyecto de prueba, luego eligiendo agregar la referencia al proyecto principal como vemos aquí.

agregue una referencia al proyecto que desea probar


Agregar métodos de prueba

En nuestro nuevo proyecto de prueba, podemos cambiar el nombre del archivo de prueba predeterminado a CustomerTest.cs. Nuestro objetivo es probar la clase Cliente en el proyecto, por lo que la convención es usar el nombre de la clase seguido de la palabra Prueba. Las pruebas siguen el mismo enfoque para cualquier situación.

  • Configurar los datos
  • Toma una acción
  • Afirmar los resultados

Entonces eso es lo que hacemos a continuación. Primero, configuramos los datos creando un nuevo objeto Cliente. Este es un objeto real derivado de la clase que creamos anteriormente.


CustomerTest.cs

¿Qué hace el código anterior por nosotros? Examinemos. Primero, creamos un nuevo objeto de cliente.
crear un nuevo objeto de cliente


Asignar datos a la propiedad FirstName.
asignar datos a la propiedad firstname


Asignar datos a la propiedad LastName.
asignar datos a la propiedad de apellido


A continuación, configuramos los datos esperados que queremos ver después de acceder a la propiedad customer.FullName. Esto debería devolvernos el apellido, una coma, luego un espacio y finalmente el nombre del cliente.
el resultado esperado


Entonces estamos listos para tomar una acción. Accedemos a la propiedad FullName y almacenamos el resultado en la actualvariable.
toma una acción


Finalmente, podemos afirmar si esta condición es verdadera.
c agudo asert-areigual


Cuando ejecutamos la prueba en el explorador de pruebas, ¡parece que está funcionando!
explorador de pruebas ejecutar todas las pruebas


Fortaleciendo el Getter FullName

Ahora podemos modificar el getter en la clase Customer para FullName. Con el código actualizado a continuación, se agrega algo de lógica para determinar si se necesita una coma o no dependiendo de si tiene solo el nombre o solo el apellido.

Ahora podemos probar mejor la clase. Podemos verificar que todas las propiedades estén funcionando como se esperaba.

La ejecución de todas las pruebas muestra que la clase parece estar funcionando muy bien.
las pruebas todavía están pasando


Los objetos son tipos de referencia

Vimos en un tutorial anterior que en C #, los objetos son tipos de referencia . Recapitulando rápidamente, los tipos de referencia almacenan un puntero a sus datos. Los tipos de valor almacenan sus datos directamente. Este es un concepto importante. Básicamente, puede tener varias variables que apunten a los mismos datos cuando utilice tipos de referencia.

A continuación, hacemos uso del staticmodificador en un nuevo miembro de Customer, InstanceCount. El modificador estático declara que un miembro pertenece directamente a la clase, en lugar de a un objeto instanciado de la clase. Por lo tanto, accede a un miembro estático utilizando el nombre de la clase, no la variable de objeto.


Prueba de miembros estáticos

Probemos el concepto anterior. En el código actualizado a continuación, ahora tenemos un método de prueba llamado StaticTest()La prueba crea tres nuevos objetos de cliente y los almacena en tres variables diferentes. Cada variable hace referencia a un objeto de cliente diferente. Observe lo que estamos haciendo después de cada asignación de un nombre a la propiedad FirstName en cada objeto de cliente. Estamos haciendo uso de ese InstanceCount estático de arriba para incrementar su valor cada vez que se crea un nuevo objeto y se le asigna un valor. Luego afirmamos que el recuento de referencias es tres, como creemos que debería ser.

Ejecutar el conjunto de pruebas muestra que las cosas siguen funcionando bastante bien.
instancia estática de prueba de clase


Creación de propiedades de clase C # y resumen de pruebas

En este tutorial usamos Visual Studio para crear una nueva solución y proyecto para comenzar a crear una clase de Cliente para una aplicación de tipo CRM. A continuación, creamos la clase Customer, que, como aprendimos antes, define un tipo. Cada vez que usa la palabra clave class en C # , está creando un tipo. De forma predeterminada, una nueva clase agregada a un proyecto en Visual Studio no tiene ningún modificador de acceso. Esto significa que si desea acceder a la clase desde otros componentes, deberá realizar un ajuste y agregar la publicpalabra clave a la clase. También tuvimos una idea del desarrollo basado en pruebas en C #, ya que creamos una clase de prueba adjunta a la clase Customer llamada CustomerTest.