我的老板让我创建一个.aspx页面,用简单的文本框输入信用卡信息,以便我们可以测试CreditCard服务中的一些方法。这很好,但我认为我们可以进行单元测试。唯一的问题是,我们不需要在Web表单中输入内容,而是只需更改传递给单元测试的变量值。有人能告诉我,如果我们不使用.aspx页面来测试和输入测试数据以测试一些方法调用,是否会很疯狂?他最终会告诉我,设置单元测试需要太多时间(正如我试图告诉他我们需要进行单元测试),这是一个愚蠢的借口。
如果你不使用单元测试而是编写手动测试工具,那么你就有些疯了 :)
基本上,一个Web服务是通过远程协议访问的API,所以为什么不进行单元测试呢?
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
相反,您可以编写一个简单的.NET(或Java)测试来调用Web服务并检查各种情况,除了明显的好处(它是可测试的)之外,您还将拥有一种自动化的方式来检查其功能。
编写单元测试所花费的时间将通过节省重复运行相同场景的测试而得到回报。
如果您的老板还没有被说服,请向他指出TDD/unit tests effectiveness的研究结果。
如果所有其他方法都失败了,为什么不使用像soapUI这样的自动化工具,至少可以避免手动测试相同的功能。
猜测你已经输了这场战斗(我们为你感到难过)。手动创建Web服务的消费者并非最佳解决方案。
看看SoapUI。它可以消耗您的WSDL,并让您玩弄XML请求。非常容易插入Web服务进行测试,如果他们想要一个POC,那就非常合适。