1

我正在 Windows 8 中开发一个通过 linqtotwitter nuGet 查询 Twitter API 的应用程序。所以,我有一些功能,如getFollowers(), getFollowing(), getScreenName() getUserInformation(). 我所有的函数都在查询 Twitter,我不知道如何使用这些函数创建单元测试。

有人可以给我一个例子吗?

例如我的 getFollowers() 函数:

 public List<string> RecupererFollower()
    {
        _log.Info("Fonction récupérer follower");
        _log.Info("On recherche les follower de "+MainPage.texte);
        _log.Info("Cette fonction va créer une liste des id des follower de"+MainPage.texte);

        List<string> idFollowers=new List<string>();
        var followers =
            (from follower in MainPage.twitterCtxProp.SocialGraph
             where follower.Type == SocialGraphType.Followers &&
                   follower.ScreenName == MainPage.texte 
             select follower)
             .ToList();
        idFollowers = followers[0].IDs;

        return idFollowers;

    }

如何使用它创建测试?什么是模拟对象?

谢谢

4

1 回答 1

2

我会看看您使用的 Twitter API 是否实现了一个接口(它可能实现了)。如果是这样,那么您应该能够模拟该连接并测试您的代码是否符合您的预期,然后它使用预期参数调用 API 方法。

Mock 对象本质上是一种将被测代码与更复杂或运行缓慢的代码或连接到另一个系统(如数据库或在本例中为 twitter)的代码断开连接的方法。

如果您不熟悉模拟框架,请查看以下任一建议框架的文档:RhinoMocksMoq。就个人而言,我更喜欢 Rhino,并且发现它有更好的文档。但是有很多选择。

对于上面的示例,您将使用类似以下内容“模拟”对 twitter API 的调用,然后您的代码将使用您提供的结果,就好像它调用了 twitter。

mockTwitterAPI.Setup(x => x.SocialGraph).Returns(MyCustomDataForThisTest());
于 2013-03-15T12:20:20.813 回答