Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las reglas de diseño le ayudan a crear y mantener conjuntos de pruebas que se adhieren al diseño adecuado y a los procedimientos recomendados. Estas reglas se centran en la estructura de pruebas, los procedimientos recomendados y los patrones comunes que conducen al código de prueba que se puede mantener.
Reglas de esta categoría
| Identificador de la regla | Title | Severity | Solución disponible |
|---|---|---|---|
| MSTEST0004 | Los tipos públicos deben ser clases de prueba. | Información | Sí |
| MSTEST0006 | Evite el atributo ExpectedException. | Información | Sí |
| MSTEST0015 | No se debe omitir el método de prueba. | Ninguno (opcional) | No |
| MSTEST0016 | La clase de prueba debe tener un método de prueba. | Información | No |
| MSTEST0019 | Prefiere TestInitialize sobre constructores. | Ninguno (registro voluntario) | Sí |
| MSTEST0020 | Prefiere constructores sobre TestInitialize. | Ninguno (opción de entrada) | Sí |
| MSTEST0021 | Prefiere "Dispose" sobre "TestCleanup". | Ninguno (participar) | Sí |
| MSTEST0022 | Prefiere TestCleanup sobre Dispose. | Ninguno (opcional) | Sí |
| MSTEST0025 | Prefiere Assert.Fail sobre condiciones siempre falsas. | Información | Sí |
| MSTEST0029 | El método público debe ser método de prueba. | Información | Sí |
| MSTEST0036 | No use sombras. | Advertencia | No |
| MSTEST0044 | Es preferible usar TestMethod en lugar de DataTestMethod. | Información | Sí |
| MSTEST0045 | Use la cancelación cooperativa para el tiempo de espera. | Información | Sí |
Escenarios frecuentes
Estructura de clase de prueba
Al crear clases de prueba, estas reglas ayudan a garantizar el diseño adecuado:
- MSTEST0004: mantener las clases auxiliares internas, solo las clases de prueba deben ser públicas.
- MSTEST0016: asegúrese de que las clases de prueba contienen al menos un método de prueba.
- MSTEST0029: Los métodos públicos de las clases de prueba deben ser métodos de prueba.
Patrones de inicialización
MSTest admite constructores y métodos TestInitialize. Estas reglas mutuamente excluyentes permiten aplicar un patrón coherente:
- MSTEST0019: aplicar TestInitialize para la inicialización (útil para escenarios asincrónicos).
- MSTEST0020: exigir constructores para la inicialización (mejor para campos de solo lectura).
Patrones de limpieza
Del mismo modo, elija entre Dispose y TestCleanup:
- MSTEST0021: Aplicar el patrón Dispose para la limpieza.
- MSTEST0022: Aplicar TestCleanup para la limpieza.
Mejores aserciones
- MSTEST0006: use Assert.ThrowsExactly en lugar de [ExpectedException] para mejorar la precisión.
- MSTEST0025: use Assert.Fail en lugar de Assert.IsTrue(false).
Calidad de prueba
- MSTEST0015: Identificar pruebas omitidas (regla opcional).
- MSTEST0036: Evite ocultar miembros de la clase base.
- MSTEST0044: Use TestMethod a menos que se necesiten pruebas basadas en datos.
- MSTEST0045: habilite los tokens de cancelación para el control del tiempo de espera.