Usted podía unidad de prueba de este objeto, pero es tan simple como para no requerir la misma. La prueba sería algo así como (NUnit ejemplo)
[Test]
public void TestRuleViolationConstructorWithErrorMessageParameterSetsErrorMessageProperty() {
// Arrange
var errorMessage = "An error message";
// Act
var ruleViolation = new RuleViolation(errorMessage);
// Assert
Assert.AreEqual(errorMessage, ruleViolation.ErrorMessage);
}
Hay poco valor a pruebas de escritura como estos, sin embargo, ya se está probando que las propiedades del marco .NET funcionan correctamente. En general, puede confiar en que Microsoft lo hizo bien :-)
En cuanto a la burla, esto es útil cuando su clase bajo prueba tiene una dependencia, tal vez en otra clase en su propia aplicación, o en un tipo de un marco. Los marcos de burla te permiten llamar a métodos y propiedades sobre la dependencia sin tener que preocuparte por crear la dependencia concretamente en el código y, en cambio, permitirte inyectar valores definidos para las propiedades, devolver valores para los métodos, etc. Moq es un marco excelente y prueba para una clase básica, con dependencia sería algo como esto:
[Test]
public void TestCalculateReturnsBasicRateTaxForMiddleIncome() {
// Arrange
// TaxPolicy is a dependency that we need to manipulate.
var policy = new Mock<TaxPolicy>();
bar.Setup(x => x.BasicRate.Returns(0.22d));
var taxCalculator = new TaxCalculator();
// Act
// Calculate takes a TaxPolicy and an annual income.
var result = taxCalculator.Calculate(policy.Object, 25000);
// Assert
// Basic Rate tax is 22%, which is 5500 of 25000.
Assert.AreEqual(5500, result);
}
TaxPolicy
habría unidad probada en su propio aparato para verificar que se comporta correctamente. Aquí, queremos probar que el TaxCalculator
funciona correctamente, por lo que nos burlamos del objeto TaxPolicy
para simplificar nuestras pruebas; Al hacerlo, podemos especificar el comportamiento de solo los bits de TaxPolicy
en los que estamos interesados. Sin él, necesitaríamos crear mocks/stubs/fakes enrollados a mano, o crear instancias reales de TaxPolicy
para pasar.
Sin embargo, hay más en Moq que esto; echa un vistazo a quick-start tutorial para ver más de lo que puede hacer.
Ver mi actualización en cómo se compruebe si el colocador es privada. – kemiller2002