Silverlight 如何将EnqueueCallBack设置为我的通用回调
我正试图设置????????值,但我的回调是通用的,它是在我的WebClient.SendData上设置的,我如何将我的EnqueueCallback实现为my Early Function LoginCallBack???您必须采取不同的方法才能实现此功能。为什么要将LoginCallBack排队?当sendData结束时,它将被异步调用,不是吗 此外,我认为在LoginCallBack中使用TestComplete和在login中使用EnqueueTestComplete没有任何意义。这不管用吗:Silverlight 如何将EnqueueCallBack设置为我的通用回调,silverlight,unit-testing,delegates,Silverlight,Unit Testing,Delegates,我正试图设置????????值,但我的回调是通用的,它是在我的WebClient.SendData上设置的,我如何将我的EnqueueCallback实现为my Early Function LoginCallBack???您必须采取不同的方法才能实现此功能。为什么要将LoginCallBack排队?当sendData结束时,它将被异步调用,不是吗 此外,我认为在LoginCallBack中使用TestComplete和在login中使用EnqueueTestComplete没有任何意义。这不管
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsistec.Domain;
using Microsistec.Client;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using Microsistec.Tools;
using System.Json;
using Microsistec.SystemConfig;
using System.Threading;
using Microsoft.Silverlight.Testing;
namespace Test
{
[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);
EnqueueCallback(?????????);
EnqueueTestComplete();
}
[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是如何被调用的,但如果您确保发生这种情况,它应该会使测试通过
[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();
}
}