gpt4 book ai didi

moq - OpenRasta 单元测试

转载 作者:行者123 更新时间:2023-12-01 04:15:31 29 4
gpt4 key购买 nike

我即将开始一个 OpenRasta 项目(基于 http web 服务的 xml)。 OpenRasta 看起来很棒,但不幸的是,互联网上的工作示例似乎很少。查看项目的测试端,如果我的处理程序返回强类型对象(不是 OperationResult),即:

public class PersonHandler
...
public Person Get(int id)
{
...

如何测试 http 状态代码? (例如,如果处理程序抛出未捕获的异常)。我不确定测试的级别,以及需要模拟的内容(使用 moq btw)

任何帮助表示赞赏,特别是编码示例!

最佳答案

我遇到了同样的问题,最终将我的测试编写为更高级别的集成测试,实际上是通过一个简单的 HttpWebRequest 客户端进行真正的 REST/HTTP 调用。这让我可以检查 HTTP 响应 header /状态代码,并从客户端的角度仔细检查 JSON/XML 序列化,这与操作是否成功一样重要。

我首先从所有处理程序返回 OperationResult,并使用它们来包装强类型对象。我的处理程序都从一个基类继承了一些辅助方法,这些方法可以更轻松地返回带有用户友好错误消息的自定义错误。我编码得越多,我的处理程序就越像一个 ASP.NET MVC Controller 。例如。:

    public OperationResult GetById(int id)
{
try
{
// do stuff here
return OKResult( // some strongly-typed resource );
}
catch(SomeException ex)
{
return BadRequestResult(SomeErrorCode, ex.Message);
}
}

然后在测试客户端中,只需检查 HTTP 状态代码就很容易了。显然,这对 mock 没有多大帮助。我不确定最好的解决方案是什么,事实上我最喜欢这个问题,希望有人能比我更好地回答它——但到目前为止,这对我来说效果很好。

关于moq - OpenRasta 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3986837/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com