Catálogo actual
| Aserción | Tipos | Código | Comprueba |
|---|---|---|---|
| FB_AssertEquals_INT | INT | 1 | Expected = Actual |
| FB_AssertEquals_BOOL | BOOL | 2 | Expected = Actual |
| FB_AssertNotEquals_INT | INT | 3 | Expected <> Actual |
| FB_AssertGreaterThan_INT | INT | 4 | Actual > ExpectedGreater |
| FB_AssertEquals_DINT | DINT | 5 | Expected = Actual |
| FB_AssertTrue | BOOL | 6 | Condition = TRUE |
| FB_AssertFalse | BOOL | 7 | Condition = FALSE |
| FB_AssertNotEquals_BOOL | BOOL | 8 | Expected <> Actual |
| FB_AssertLessThan_INT | INT | 9 | Actual < ExpectedLess |
| FB_AssertLessOrEqual_INT | INT | 10 | Actual <= ExpectedLessOrEqual |
| FB_AssertGreaterOrEqual_INT | INT | 11 | Actual >= ExpectedGreaterOrEqual |
| FB_AssertInRange_INT | INT | 12 | Minimum <= Actual <= Maximum |
| FB_AssertNear_REAL | REAL | 13 | |Actual - Expected| <= Tolerance |
| FB_AssertBitSet_WORD | WORD | 14 | (Value AND Mask) = Mask |
| FB_AssertBitClear_WORD | WORD | 15 | (Value AND Mask) = 0 |
| FB_AssertEventually | BOOL / scans | 16 | Condition dentro de TimeoutScans |
Los rangos son inclusivos. FB_AssertNear_REAL usa tolerancia absoluta. Las aserciones de bits trabajan con máscaras WORD y FB_AssertEventually conserva el estado entre scans hasta que la condición se cumple o vence el límite.
Contrato del diagnóstico
TYPE ST_AssertionDiagnostic : STRUCT Expected : DINT; Actual : DINT; ExpectedReal : LREAL; ActualReal : LREAL; ToleranceReal : LREAL; Code : INT; END_STRUCT; END_TYPE
Para un caso correcto se conserva la primera aserción como diagnóstico representativo. Cuando una aserción falla, el contexto conserva los valores esperado y actual de la última que falló. Las aserciones REAL añaden precisión extendida y tolerancia en el reporte JSON y JUnit.
Añadir una aserción
- Crea un bloque independiente en core/assertions/.
- Declara Context : ST_TestCaseContext como VAR_IN_OUT.
- Incrementa AssertCount y exactamente uno de PassCount o FailCount.
- Expón el bloque desde core/STUnit.st.
- Añade casos positivos y negativos a la suite.