TypeMock Isolator 4.2 já saíu
A TypeMock lançou a versão 4.2 da sua plataforma de simulacros: TypeMock Insulator. Vejam as notas de lançamento.
As quatro novas funcionalidades favoritas são:
Encadeamento melhorado
(Se querem saber mais sobre cadeias, leiam este post do Gil)
Tome esta classe a ser testada:
public class TestedClass1
{
public IDictionary<string, object> Dictionary
{
get { throw new NotImplementedException(); }
}
public object Method(bool cond)
{
if (cond)
{
return Dictionary["true"];
}
else
{
return Dictionary["false"];
}
}
}
O seguinte teste:
[TestMethod]
[VerifyMocks]
public void TestMethod1()
{
object trueObject = new object();
object falseObject = new object();
TestedClass1 target = RecorderManager.CreateMockedObject<TestedClass1>();
using (RecordExpectations recorder = RecorderManager.StartRecording())
{
recorder.DefaultBehavior.CheckArguments();
recorder.ExpectAndReturn(target.Dictionary["true"], trueObject);
recorder.FailWhenCalled(target.Dictionary["false"]);
}
object value = target.Method(true);
Assert.AreEqual(trueObject, value);
}
Simplesmente falharia com:
Test method TestProject1.UnitTest1.TestMethod1 threw exception: TypeMock.VerifyException:
TypeMock Verification: Method TestProject1.TestedClass1.get_Dictionary() has 1 more expected calls
.
Agora, simplesmente passa.
Avaliação no debugger não muda o comportamento do teste
Agora pode-se depurar o código sem necessidade de mudar os testes. Podem-se inquirir os valores simulados sem influenciar os testes.
Pode-se fazer isto e o teste passar:
O debugger pode correr dentro de um block de gravação sem influenciar o teste
Pode-se entrar num bloco de gravação e depurá-lo sem afectar o processo de gravação.
Quando se entra num método simulado, o método é visualmente marcado
Quando se entra num método (ou propriedade) simulado, vês que está a ser simulado.
