2

我有一个Silverlight 4客户端运行在托管在Google App Engine上的Facebook页面上。它使用gminifb与Facebook API进行通信。 Silverlight客户端使用POST方法调用每种方法的URI,并在每次调用时从Facebook传递会话信息。单元测试Silverlight-Facebook应用程序的服务器接口

该项目的增长,这将是超级有用的,如果我可以成立一个单元测试系统,使各种服务器调用,这样,当我做出改变,我可以保证一切仍然有效。我之前和nUnit一起工作过,我喜欢我读过的PEX,但我不确定如何将它们应用于这种情况。

  1. 为此创建测试系统有什么选择?每个的优点/缺点?

  2. 我该如何开始设置类似的东西呢?

回答

2

解决。我做了如下:

  1. 创建一个特殊的用户帐户,用于在绕过验证的服务器上进行测试。只有在该环境的设置中检查调试标志,才能在测试环境中执行此操作。这避免了在创建活动站点的任何安全漏洞(因为相同的调试标志将是错误的存在。)

  2. 创建一个C#.NET解决方案,以测试每个API调用。主机项目是一个控制台应用程序(不需要一个GUI)有三个可重复使用的同步方法:
    SendFormRequest(WebRequest request, Dictionary<string,string> pairs)
    GetJsonFromResponse(HttpWebResponse response)
    ResetAccount()
    这三个方法允许主机项目在服务器上发出HTTP请求并读取JSON响应。

  3. 包裹在主体项目的方法调用内部的每个服务器API调用。

  4. 创建于溶液中的nUnit测试项目。然后,简单地创建测试,调用宿主项目中的每个包装器方法,使用不同的参数并更改服务器上的值。

  5. 创造了一系列的测试来验证正确的错误处理无效的参数和数据。

它的工作完美,并已发现一些小问题已被发现。结果非常有用,并将检查新部署中的重大更改。

+0

你能告诉我,如果你使用任何特定的库连接到Facebook? – Ben 2010-12-19 19:27:56

+0

http://stackoverflow.com/questions/4483811/architecture-for-testable-iframe-application-best-practices-with-facebook-c-sd – Ben 2010-12-19 19:28:18