MSTest
[TestClass]
public class HeatingValveDecoratorTests
{
[TestMethod]
public void Trigger_ShouldStayClosed_WhenTooHot()
{
var mockRoom = new Mock<Room>();
mockRoom.SetupGet(r => r.PreferredTemperature).Returns(20.0);
var mockSensor = new Mock<IWeatherSensor>();
mockSensor.SetupGet(s => s.Temperature).Returns(21.0);
var decorator = new HeatingValveDecorator(mockRoom.Object);
decorator.Trigger(mockSensor.Object);
Assert.IsFalse(decorator.IsHeatingOn);
}
[TestMethod]
public void Trigger_ShouldOpen_WhenTemperatureOk()
{
var mockRoom = new Mock<Room>();
mockRoom.SetupGet(r => r.PreferredTemperature).Returns(22.0);
var mockSensor = new Mock<IWeatherSensor>();
mockSensor.SetupGet(s => s.Temperature).Returns(21.0);
var decorator = new HeatingValveDecorator(mockRoom.Object);
decorator.Trigger(mockSensor.Object);
Assert.IsTrue(decorator.IsHeatingOn);
}
[TestMethod]
public void Trigger_ShouldCallTriggerOnInnerRoom_WhenCalled()
{
var mockRoom = new Mock<Room>();
var mockSensor = new Mock<IWeatherSensor>();
var decorator = new HeatingValveDecorator(mockRoom.Object);
decorator.Trigger(mockSensor.Object);
mockRoom.Verify(r => r.Trigger(mockSensor.Object), Times.Once);
}
}Organisation
Assertions
Exceptions
Parametrisierte Tests
AAA-Pattern
Last updated