Вы должны использовать другой подход, чтобы сделать эту работу. Почему вы хотите поставить в очередь LoginCallBack? Он будет вызываться асинхронно после завершения sendData, не так ли?
Кроме того, я не вижу смысла иметь TestComplete () в LoginCallBack и EnqueueTestComplete () при входе в систему. Разве это не сработает:
[TestClass]
public class SampleTest : SilverlightTest
{
[TestMethod, Asynchronous]
public void login()
{
List<PostData> data = new List<PostData>();
data.Add(new PostData("email", "xxx"));
data.Add(new PostData("password", MD5.GetHashString("xxx")));
WebClient.sendData(Config.DataServerURL + "/user/login", data, LoginCallBack);
}
[Asynchronous]
public void LoginCallBack(object sender, System.Net.UploadStringCompletedEventArgs e)
{
string json = Microsistec.Client.WebClient.ProcessResult(e);
var result = JsonArray.Parse(json);
Assert.Equals("1", result["value"].ToString());
TestComplete();
}
}
Я не уверен, как вызывается LoginCallback, но если вы уверены, что это произойдет, он должен пройти тест!