diff --git a/tests/daemon/face/tcp.cpp b/tests/daemon/face/tcp.cpp
index 7b0a77d..a87c5dc 100644
--- a/tests/daemon/face/tcp.cpp
+++ b/tests/daemon/face/tcp.cpp
@@ -234,6 +234,16 @@
     BOOST_CHECK_EQUAL(faces.size(), shouldBe);
   }
 
+  void
+  connect(const shared_ptr<TcpChannel>& channel,
+          const std::string& remoteHost,
+          const std::string& remotePort)
+  {
+    channel->connect(remoteHost, remotePort,
+                     bind(&EndToEndFixture::channel_onFaceCreated, this, _1),
+                     bind(&EndToEndFixture::channel_onConnectFailed, this, _1));
+  }
+
 public:
   LimitedIo limitedIo;
 
@@ -431,13 +441,7 @@
   BOOST_CHECK_NE(channel3, channel4);
 
   scheduler::schedule(time::seconds(1),
-      bind(&TcpChannel::connect, channel4, "127.0.0.1", "20070",
-          // does not work without static_cast
-           static_cast<TcpChannel::FaceCreatedCallback>(
-               bind(&EndToEndFixture::channel_onFaceCreated, this, _1)),
-           static_cast<TcpChannel::ConnectFailedCallback>(
-               bind(&EndToEndFixture::channel_onConnectFailed, this, _1)),
-           time::seconds(4)));
+                      bind(&EndToEndFixture::connect, this, channel4, "127.0.0.1", "20070"));
 
   scheduler::schedule(time::milliseconds(500),
                       bind(&EndToEndFixture::checkFaceList, this, 4));
diff --git a/tests/daemon/face/udp.cpp b/tests/daemon/face/udp.cpp
index 503ec74..87ee8f0 100644
--- a/tests/daemon/face/udp.cpp
+++ b/tests/daemon/face/udp.cpp
@@ -379,7 +379,7 @@
   void
   channel_onConnectFailedOk(const std::string& reason)
   {
-    //it's ok, it was supposed to fail
+    // it's ok, it was supposed to fail
     limitedIo.afterOp();
   }
 
@@ -389,6 +389,16 @@
     BOOST_CHECK_EQUAL(faces.size(), shouldBe);
   }
 
+  void
+  connect(const shared_ptr<UdpChannel>& channel,
+          const std::string& remoteHost,
+          const std::string& remotePort)
+  {
+    channel->connect(remoteHost, remotePort,
+                     bind(&EndToEndFixture::channel_onFaceCreated, this, _1),
+                     bind(&EndToEndFixture::channel_onConnectFailed, this, _1));
+  }
+
 public:
   LimitedIo limitedIo;
 
@@ -640,12 +650,7 @@
   BOOST_CHECK_NE(channel3, channel4);
 
   scheduler::schedule(time::milliseconds(500),
-           bind(&UdpChannel::connect, channel4, "127.0.0.1", "20070",
-                // does not work without static_cast
-                static_cast<UdpChannel::FaceCreatedCallback>(
-                    bind(&EndToEndFixture::channel_onFaceCreated, this, _1)),
-                static_cast<UdpChannel::ConnectFailedCallback>(
-                    bind(&EndToEndFixture::channel_onConnectFailed, this, _1))));
+                      bind(&EndToEndFixture::connect, this, channel4, "127.0.0.1", "20070"));
 
   scheduler::schedule(time::milliseconds(400), bind(&EndToEndFixture::checkFaceList, this, 2));
 
