Nunit: ¿Cómo probar una clase base específica?

Creado en 12 jul. 2017  ·  5Comentarios  ·  Fuente: nunit/nunit

Tengo una clase que quiero probar que se heredó en el mismo ensamblado. Esa clase tiene una función de prueba que necesita probar solo en la clase base. Quiero que la prueba solo se ejecute una vez, no en heredada

¿Cómo podría hacerlo?

duplicate

Todos 5 comentarios

¡Hola @Thaina! Solo estábamos hablando de esto. Esto es lo que le recomendaría hacer: https://github.com/nunit/nunit/issues/2309#issuecomment -313936931 ¿Se adapta a sus necesidades?

Vaya, botón incorrecto. 😛

@ jnm2 Bueno, no tan mal porque lo es. Pero creo que debería ser compatible de forma nativa

Gracias por dejarnos saber tu opinión. Creo que eres solo la segunda persona que lo pide hasta ahora, pero lo reconsideraremos si suficientes personas terminan preguntando.

@Thaina Estás intentando hacer algo para lo que NUnit no está diseñado, por lo que cualquier solicitud de cambio es una solicitud de cambio en la forma fundamental en que NUnit funciona. Eso no quiere decir que sea imposible, pero significa que (1) necesitas buenas razones por las que podríamos hacerlo y (2) al menos debes considerar cómo los diseñadores de NUnit pensaron que este tipo de situación debería funcionar.

Si entiendo lo que estás diciendo, tienes una prueba escrita así ...

`` C #
clase pública BaseClass
{
// Tal vez configuración y desmontaje comunes y otras pruebas

[Test]
public void SomeTest() { }

}

clase pública DerivedClass: BaseClass
{
// Esta clase ejecuta sus propias pruebas más SomeTest desde la base
}

`SomeTest` runs on both the base class and the derived class. You want it to run on only the base class. According to the intended design of NUnit, we would expect your base class to be abstract and we would run it only on the __derived__ class. However, you want to run it only on the __base__ class. In order to do that, our standard recipe would be as follows:

```C#
public abstract class BaseClass
{
    // Maybe common setup and teardown and other tests
}

public class DerivedClass1 : BaseClass
{
    // This class runs it's own tests plus SomeTest from base
}

public class DerivedClass2 : BaseClass
{
    [Test]
    public void SomeTest() { }
}

En este diseño, la clase base nunca se ejecuta directamente. Participa por herencia en la ejecución de las dos clases derivadas. Obviamente, esta no es la única forma en que podría haberse hecho, pero es la forma en que NUnit fue diseñado para funcionar. Las clases base están destinadas a ser abstractas y no proporcionar pruebas directamente. Solo los suministran a las clases que se derivan de ellos.

Esta es una descripción de cómo funciona NUnit, ahora mismo. Si puede encajar en este patrón, la vida será más fácil, aunque todavía puede pedirnos que cambiemos las cosas en algún momento.

¿Fue útil esta página
0 / 5 - 0 calificaciones