搜索敏捷方法以创建测试

时间:2011-05-16 10:54:03

标签: c# unit-testing nunit gallio

我实际上正在测试网络的Web服务。与Nunit和Gallio等单位测试人员合作。

实际上,我有一个问题。我想测试一个服务,我必须在html中填写大量数据,就像处方集一样。问题是我正在手动编辑xml来进行测试......它太麻烦和沉重,因此,我正在寻找一种灵活的方法来做到这一点。

我的老板告诉我做一个处方集,我可以填写所有字段,比如html,然后用它创建一个xml。比手动编辑基础xml更有效。

有一种工具可以帮助我吗?

抱歉我的英语不好。

3 个答案:

答案 0 :(得分:0)

您应该尝试SeleniumFitness

答案 1 :(得分:0)

也许测试数据构建器可能适合您?您可以编写类,以便您可以在测试中编写

var xml = new WebServiceCallBuilder()
             .WithDefaultValues()              // this sets most common options
             .WithParamX("something")          // which You can then modify
             .WithParamY("something other")
             .WithParamZ("another thing")
             .Build();

var result = webService.Call(xml);

您还可以实现测试数据构建器,以便启用

之类的功能

var xyzBuilder = new WebServiceCallBuilder()
                 .WithDefaultValues()
                 .WithParamX("x")
                 .WithParamY("y")
                 .WithParamZ("z");
var xyzXml = xyzBuilder.Build();

// let's say now You want similar builder but with different Z param
// then You can do this to not copy/paste/modify code above
var xyzzzBuilder = new WebServiceCallBuilder(xyzBuilder)
                      .WithParamZ("zzz");
var xyzzzXml = xyzzzBuilder.Build();

我可能会用它。

答案 2 :(得分:0)

由于模拟环境和http请求所涉及的工作,我们决定不通过Web服务对我们的代码进行单元测试。

相反,我们将尽可能多的代码移动到'核心'组件,它不依赖于Web框架(在我们的例子中是ASP.NET,所以'核心'没有参考到像System.Web这样的程序集。

依赖于Web框架的代码保留在'web'组件中。我们尽量保持这一点 - 它通常处理身份验证,授权,转换请求并调用“核心”中的相应功能来处理它。

我们尝试将公共接口完全单元测试为“核心”,但我们不会尝试对“网络”界面进行单元测试。我们计划使用不同类型的自动化测试来测试“网络”。