¿Qué es una Aserción?
Es una sentencia que puede ser falsa o verdadera, nos sirve para verificar o comprobar el funcionamiento de nuestro código. Básicamente es lo que supone el programador debe ocurrir en alguna parte del programa.
Un ejemplo en Java:
int cantidad=this.getTotal();
if(cantidad < 0){
out.out.println("la cantidad es de:"+cantidad);
}
else{
out.println("la cantidad es de:"+cantidad);
assert cantidad == 0 :"Parece que la cantidad no es 0";
}
En este fragmento de código vemos como usar las aserciones, en este caso usamos la palabra assert e indicamos una condición a cumplir. Las aserciones no son exclusivas de Java, también podemos encontrarlas en lenguajes como: Ceylon, Python, C++, entre otros más.
En Java
Compilamos: javac -g Asercion.java
Ejecutamos: java -ea Asercion
Asercion.java
import static java.lang.System.out;
public class Codemonkey{
public static void main(String[] args) {
ControlUsuarios cu=new ControlUsuarios();
cu.setTotal(1);
cu.mostrar();
}
}
class ControlUsuarios{
private int total=0;
public ControlUsuarios(){
}
public void setTotal(int total){
this.total=total;
}
public int getTotal(){
return total;
}
public void mostrar(){
int cantidad=this.getTotal();
if(cantidad < 0){
out.println("la cantidad es de:"+cantidad);
}
else{
out.println("la cantidad es de:"+cantidad);
assert cantidad == 0 :"Parece que la cantidad no es 0";
}
}
}
En Ceylon
Compilamos: ceylon compile source/Asercion.ceylon
Ejecutamos: ceylon run default
Asercion.ceylon
shared void run(){
value cu=ControlUsuarios();
cu.total=0;
cu.mostrar();
}
class ControlUsuarios(){
shared variable Integer total=0;
shared Integer getTotal(){
return total;
}
shared void mostrar(){
Integer cantidad=this.getTotal();
if(cantidad < 0){
print("la cantidad es: ``cantidad``");
}else{
print("la cantidad es: ``cantidad``");
assert(cantidad == 0);//Parece que la cantidad no es 0
}
}
}
En C++
Compilamos: g++ -o asercion asercion.cpp
Ejecutamos: ./asercion
asercion.cpp
#include "iostream"
#include <cassert>
using namespace std;
class ControlUsuarios{
private:
int total;
public:
ControlUsuarios(){}
virtual ~ControlUsuarios(){}
void setTotal(int total){
this->total=total;
}
int getTotal(){
return total;
}
void mostrar(){
int cantidad=this->getTotal();
if(cantidad < 0){
cout<<"la cantidad es de:"<<cantidad<<endl;
}
else{
cout<<"la cantidad es de:"<<cantidad<<endl;
assert(cantidad == 0); //"Parece que la cantidad no es 0";
assert(("Parece que la cantidad no es 0",cantidad == 0));
}
}
};
int main(int argc, char** argv){
ControlUsuarios cu = ControlUsuarios();
cu.setTotal(1);
cu.mostrar();
return 0;
}
En Python
Ejecutamos: python Asercion.py
Asercion.py
class ControlUsuarios(object):
total=0
def mostrar(self):
cantidad=self.total
if cantidad < 0:
print "cantidad es:",cantidad
else:
print "cantidad es:",cantidad
assert cantidad == 0 #Parece que no es 0
cu=ControlUsuarios()
cu.total=1
cu.mostrar()
La verificación de programas (algoritmos) es un tema bastante extenso y complejo, este post solo trata del uso de las aserciones de manera muy superficial.
Links
http://es.axiacore.com/blog/2008/05/ejemplo-aserciones-assert-java/
http://www.lab.dit.upm.es/~lprg/material/apuntes/assert/aserciones.htm
http://pablasso.com/200812/que-es-una-asercion/
Suscribirse a:
Enviar comentarios (Atom)
Vibe Coding (la programación vía IA): ¿el futuro de la programación?
Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

-
Ionic es un framework que permite crear aplicaciones móviles híbridas. Éstas aplicaciones son las que emplean tecnologías como HTML, CSS ...
-
En una anterior entrega dimos un vistazo a esProc SPL , un lenguaje orientado al tratamiento y almancenamiento de datos. Peculiarida...
-
Progress ABL es un lenguaje de programación vinculado al entorno Progress OpenEdge , su base de datos y las utilidades que lo rodean. Es s...
Etiquetas
- .NET
- 100
- abl
- abstract
- abstractas
- ada
- agile
- algoritmos
- alternativa
- android
- angular
- angularjs
- apache
- apex
- api
- appserv
- aprender
- aprender java
- aprender jsf
- aprender python
- aprendizaje
- area
- args
- aserciones
- asm
- asp
- assembly
- assert
- automatización
- awk
- aws
- ayuda
- azure
- ballerina
- base de datos
- bases de datos
- bash
- bat
- bd
- beam
- bigquery
- biotipo
- bleam
- blockchain
- blog
- bq
- bucket
- bundle
- c
- c#
- c++
- calculo
- case
- celsius
- ceylon
- cgi
- charp
- chatgpt
- cherrypy
- chino
- clases
- cli
- cliente
- clojure
- closures
- cloud
- cmd
- cmd.bat
- coalesce
- cobol
- codeblocks
- codeigniter
- codes
- código
- códigos
- comando
- comandos
- commit
- comparativa
- compartir
- compilador
- compile
- composer
- comprobación
- computación
- computing
- conceptos
- concurnas
- concurrente
- condicionales
- conectividad
- configuration
- consejos
- const
- constantes
- consultas
- contenedores
- contenedores web
- control de versiones
- conversion
- conversor
- convertidor
- copilot
- cpan
- cplus
- cpp
- crear
- cripto
- criptomoneda
- CrowdStrike
- crystal
- csharp
- cshtml
- css
- css3
- csv
- curso
- d
- dancer2
- datastage
- datos
- deepseek
- delphi
- deploy
- desarrollo
- determinar
- dev c++
- developer
- devops
- días
- directivas
- disparejo
- distribuido
- django
- dlang
- doc
- docker
- document
- documentación
- dotnet
- driver
- dsl
- dylan
- easyphp
- eclipse
- eclipse y scala
- economica
- editor
- ejb
- ejecutar
- ejemplos
- ejemplos cpp
- ejemplos de csharp
- ejemplos de scala
- ejemplos java
- ejemplos python
- ejmeplo
- elixir
- elixir.
- en línea
- encapsulación
- ensamblador
- enum
- erlang
- error
- errores
- es6
- escribir
- esproc
- esprocsqpl
- estructuras
- ethereum
- euler
- excepciones
- expando
- export
- externa
- f#
- faces
- fahrenheit
- feliz año
- fetch
- filosofía
- firebase
- flask
- foreach
- framework
- fsharp
- funcional
- funciones
- functions
- futuro
- gcc
- gcp
- geany
- gem
- gemfile
- generador de proyectos
- genie
- gestor de proyectos
- github
- glassfish
- gleam
- gnu
- go
- golang
- google web toolkit
- gosu
- gradle
- grapes
- graven
- grok
- grooscript
- groovy
- groovyeConsole
- grpc
- gson
- gui
- gwt
- gwtext
- hashmap
- haskell
- haxe
- herencia
- hibernate
- hola
- hola en ceylon
- horoscopo
- HTA
- html
- html5
- http-server
- ia
- iaas
- iac
- ibm
- IDE
- ide scala
- if
- ifnull
- imc
- import
- importar
- ingeniería
- iniciar glassfish
- iniciar tomcat
- inicio
- inicio en ceylon
- IntelliJ IDEA pycharm
- interface
- interfaces
- interfaz
- interna
- interoperabilidad
- interprete
- interview
- inversión de control
- inyección de dependencias
- ionic
- ios
- jabaco
- java
- java swing
- java y ceylon
- JAVA_HOME
- javadoc
- javascript
- javaserver
- jaxb
- jdbc
- jdbi
- jdk
- jdk8
- jpa
- jpql
- jquery
- jre
- jruby
- jscript
- jsf
- jsni
- json
- juego
- julia
- jvm
- jvm y ceylon
- jython
- kanban
- katas
- kate
- koltin
- kotlin
- kubernetes
- la path
- langchain
- laravel
- learn
- lectura
- lenguaje
- lenguaje scala
- lenguajes
- let
- leyes
- libro
- linux
- list
- lista
- listas
- livescript
- llm
- lua
- macro
- major
- mapas
- maven
- maven y eclipse
- mensajes
- menú
- mercurial
- messagebox
- metaClass
- microsoft
- mix
- mobile
- modularidad
- módulo
- mojo
- mojolicious
- mono
- monodevelop
- ms-dos
- mu
- mvc
- mybatis
- mysql
- n8n
- netbeans
- nexus
- ng
- nicon notify
- nimrod
- node
- nodejs
- notificaciones
- npm
- nube
- nuevo
- nuget
- nullif
- numericas
- ocaml
- ollama
- online
- opendylan
- openedge
- operaciones
- oracel
- oracle
- orientación a objetos
- otp
- paas
- paas iaas
- package
- packages
- padrino
- paradigma
- pascal
- path groovy
- path java
- patrones de diseño
- pdf-parser
- perl
- phoenix
- php
- pl/1
- plot
- plsql
- pom.xml.build.gradle
- poo
- powershell
- pregunta
- problema
- problemas al ejecutar programa en ceylon
- procedimientos
- procedures
- programa
- programacion
- programación
- programador
- programadores
- programar
- programas
- programas java
- programming
- progress
- proyectos maven
- prueba
- pseint
- pulsaciones
- pyramid
- python
- pyzenity
- questions
- r
- rebar3
- record
- recursos
- regex
- regiones
- remix
- repl
- replace
- repositorios
- REST
- reverse
- romanos
- ruby
- run
- rust
- ruta
- saas
- sanic
- sap
- sas
- sbt
- scala
- scripting
- scripts
- scrum
- sdkman
- semántica
- sentencias
- servidor
- shell
- show
- simplej
- sinatra
- sintaxis
- sitios
- slim
- sms
- smslib
- solidity
- solución
- spark
- spl
- spring
- spring framework
- spring-boot
- spyder
- sql
- standard
- storage
- stored
- strawberry
- struts
- style
- svn
- swift
- symfony
- system
- tarot
- tdd
- técnicas
- terminal
- terraform
- the maven integration requires that eclipse be running in a jdk
- tiempo
- tips
- tomcat
- top-down
- tornadoweb
- tratamiento xml
- triggers
- turbogears
- tutoriales
- type
- typescript
- udf
- unsupported
- usar jdk
- uso
- uwamp
- variables
- vba
- vbscript
- ventanas
- verificar
- version
- version_52.0
- versiones
- vibecoding
- videojuegos
- vistazo
- visual code
- visual csharp
- visual studio
- vscode
- wampserver
- web
- web2pybottle
- window
- windows
- wisp
- xampp
- xml
- youtube
- zenity
Archivo del blog
-
►
2024
(58)
- ► septiembre (1)
-
►
2023
(12)
- ► septiembre (1)
-
►
2022
(10)
- ► septiembre (1)
-
►
2021
(26)
- ► septiembre (1)
-
►
2020
(9)
- ► septiembre (2)
-
►
2019
(26)
- ► septiembre (3)
-
►
2014
(36)
- ► septiembre (1)
-
►
2013
(40)
- ► septiembre (5)
-
►
2012
(46)
- ► septiembre (3)
No hay comentarios:
Publicar un comentario