Ir al contenido principal

Entradas

Mostrando las entradas de septiembre, 2009

VB XML Literals

Desde la versión 9.0 de VB .Net existe una característica llamada XML Literals la cual consiste en poder escribir XML directamente en el código VB y manejar el xml como parte del lenguaje.

Actualmente cuando en una solución necesito trabajar con XML, donde generalmente hay puros proyectos de C#, también agrego un proyecto en VB.Net solo para el manejo de XML por que se me facilita con XML Literals.

Para mostrar como se utiliza XML Literals mostraré un ejemplo (el clásico ejemplo de una orden) el cual consiste en una clase que exporta e importa ordenes a/desde XML.Para esto creo una solución con 3 proyectos uno de tipo C# Windows library con el nombre XmlLiteralsExample.Domain el cual contiene las clases Order y OrderItem con esta definiciónnamespace XmlLiteralsExample.Domain
{
public class Order
{
public int Id { get; set; }
public string Customer { get; set; }
public List<OrderItem> Items { get; set; }

public Order()
{
Items = new List<OrderItem>();
}
}

public cl…

Sharp Tests Ex

Descargue las extensiones para MsTests desarrolladas por Fabio Maulo: "Sharp Tests Extensions". La idea de estas extensiones es que tus aserciones en las pruebas sean escritas con mayor fluidez. ademas de que es mas clara la distinción entre el valor esperado y el valor obtenido. Evitando el uso de la clase Assert directamente.

Un ejemplo de como cambia un test usando estas extensiones

Test usando MsTest sin extensiones

[TestMethod]
public void should_change_password()
{
var username = "username";
var originalPassword = "original";
var newPassword = "newPassword";

var user = new User { Password = originalPassword };

mockRepository.Setup(r => r.GetUser(username))
.Returns(user);

bool result = accountService.ChangePassword(
username, originalPassword, newPassword);

Assert.IsTrue(result);
Assert.AreEqual(newPassword, user.Password);
mockRepository.Verify(r => r.Save());
}


ahora esta es la misma prueba utilizando Sharp TextsEx
[TestMethod]
public vo…