public void TestBusinessException() { string message = "Ocorreu um erro"; Exception ex = new BusinessException(message); string exceptionToString = ex.ToString(); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { // Salva estado do objeto bf.Serialize(ms, ex); // Reutiliza o mesmo stream para desserialização ms.Seek(0, 0); // Substitui a exceção original com a desserializada ex = (BusinessException)bf.Deserialize(ms); } Assert.IsNotNull(ex); Assert.IsNotNull(exceptionToString); Assert.AreEqual(exceptionToString, ex.ToString(), "ex.ToString()"); Assert.AreEqual(ex.Message, message); }