如何创建一个测试项目来调试(插入)Web服务?

时间:2009-09-01 21:04:52

标签: visual-studio-2008 web-services unit-testing debugging

我希望我可以解释一下我想要实现的目标:我希望能够在与我的Web服务相同的解决方案中创建单元测试,让它启动Web服务环境并能够设置断点单元测试代码和Web服务代码,并让调试器停止在它们上面。这可能吗?

1 个答案:

答案 0 :(得分:1)

我做过一次,这是一个巨大的痛苦,几乎没有任何好处。我建议不要这样做。有几个边缘情况实际上测试序列化会捕获,但大多数(可能除了传递大量数据)将在验证测试期间找到。

我的建议是尽可能地保持您的网络方法,如果可以的话,尽量保持一两行代码。将所有业务逻辑移至一个或多个普通旧CLR对象(PO​​CO)。这些可以与您的Web服务位于同一个项目中,也可以位于单独的类库中(在同一个2008解决方案中也可以);分离将允许更多的重用。

为您的单元测试创​​建另一个类库(同样在同一解决方案中)。它只引用业务逻辑库。对这些方法的测试将相对较快。

web方法可能包含一些简单的逻辑(将数组转换为列表,创建对象等),但要尽量保持它们的简单性以便它们不会破坏。

您可以将断点与ReSharper之类的测试集成一起使用,或者只需运行NUnit并附加到VS调试器中的进程即可。 (可能与其他测试框架类似。)

WCF也值得研究;我认为它有一些可能对你有帮助的功能。 (我不是WCF专家。)