【发布时间】:2012-11-01 14:51:22
【问题描述】:
基本上,我有一个非常标准的 Web 服务调用,在一个 DLL 项目中,在构建的调试服务器下运行。
看起来像这样
<WebInvoke(Method:="POST", BodyStyle:=WebMessageBodyStyle.Bare, UriTemplate:="")>
Public Function POSTOrder(httpPostOrder As Contract.APIOrder) As Contract.Response.Order
....
Return (httpResponse)
End Function
如果我运行项目,我可以使用 fiddler 向它发送 XML POST 请求就好了,如果我在上述函数中设置断点,它就会被命中。
现在,我想为这个函数设置一个简单的单元测试,所以我添加了一个测试项目和这个测试:
<TestMethod()>
Public Sub TestPostOrder()
Dim r As String
Dim w As New Net.WebClient
W.Headers.Add("Content-Type", "application/xml")
Dim x =
<?xml version="1.0"?>
<order_info>
<event_id>103153</event_id>
<id>1</id>
.....
</order_info>
r = w.UploadString("http://localhost:15034/orders/?api_key={sometext}", "POST", x.ToString)
End Sub
我知道,这不是世界上最伟大的单元测试,但这不是现在的重点。
所以,当我运行这个测试时,它确实运行并成功了。我什至可以调试单元测试,单步执行它,然后看到 UPLOADSTRING 调用确实成功并返回了有效信息。
但是,如果我在正在测试的实际函数中设置断点,它永远不会被命中。
我发现了这个问题
Can I debug while running a VS Unit Test?
但我试过了,没有骰子。
我猜我的单元测试配置不正确,所以它没有在可以调试的上下文中启动实际的 DLL,但到目前为止,我什么也没发现。
有什么想法吗?
【问题讨论】:
标签: .net vb.net web-services unit-testing visual-studio-debugging