Dev环境中的集成测试用例执行时上下文环境检查
作者:网络转载 发布时间:[ 2014/9/28 15:45:48 ] 推荐标签:软件测试技术 测试用例
其实很多时候,重构真的能够帮助我们找到出口,好比俗话说的:"出口在转角处“,只有不断重构才能够逐渐的保证项目的质量,而这种效果是很难得的。
提取抽象基类,对测试要访问的环境进行明确的定义。
1 namespace OrderManager.Test
2 {
3 public abstract class ProductServiceIntegrationBase
4 {
5 /// <summary>
6 /// service address.
7 /// </summary>
8 protected const string ServiceAddressForDev = "http://dev.service.ProductService/";
9
10 /// <summary>
11 /// service address.
12 /// </summary>
13 protected const string ServiceAddressForPrd = "http://Prd.service.ProductService/";
14
15 /// <summary>
16 /// service address.
17 /// </summary>
18 protected const string ServiceAddressTest = "http://Test.service.ProductService/";
19 }
20 }
对具体的测试类消除重复代码,加入统一的构造方法。
1 using System;
2 using Microsoft.VisualStudio.TestTools.UnitTesting;
3
4 namespace OrderManager.Test
5 {
6 using ProductService.Contract;
7
8 /// <summary>
9 /// Product service integration tests.
10 /// </summary>
11 [TestClass]
12 public class ProductServiceIntegrationTest : ProductServiceIntegrationBase
13 {
14 /// <summary>
15 /// product service client.
16 /// </summary>
17 private ProductServiceClient serviceInstance;
18
19 /// <summary>
20 /// Initialization test instance.
21 /// </summary>
22 [TestInitialize]
23 public void InitTestInstance()
24 {
25 serviceInstance = ProductServiceClient.CreateClient(ServiceAddressForDev/*for dev*/);
26 }
27
28 /// <summary>
29 /// Product service get product by pid test.
30 /// </summary>
31 [TestMethod]
32 public void ProductService_GetProductByPid_Test()
33 {
34 var testResult = serviceInstance.GetProductByPid(0393844);
35
36 Assert.AreNotEqual(testResult, null);
37 Assert.AreEqual(testResult.Pid, 0393844);
38 }
39
40 /// <summary>
41 /// Product service delete search index test.
42 /// </summary>
43 [TestMethod]
44 public void ProductService_DeleteProductSearchIndex_Test()
45 {
46 var testResult = serviceInstance.DeleteProductSearchIndex();
47
48 Assert.IsTrue(testResult);
49 }
50 }
51 }
消除重复代码后,我们需要加入对具体测试用例检查是否能够连接到某个环境中去。我加入了一个DeleteProductSearchIndex测试用例,该用例是用来测试删除搜索索引的,这个测试用例只能够在本地DEV环境中运行(你可能觉得这个删除接口不应该放在这个服务里,这里只是举一个例子,无需纠结)。
为了能够有一个检查机制能提醒开发人员你目前连接的地址是哪一个,我们需要借助于测试上下文。
重构后,我们看一下现在的测试代码结构。
1 using System;
2 using Microsoft.VisualStudio.TestTools.UnitTesting;
3
4 namespace OrderManager.Test
5 {
6 using ProductService.Contract;
7
8 /// <summary>
9 /// Product service integration tests.
10 /// </summary>
11 [TestClass]
12 public class ProductServiceIntegrationTest : ProductServiceIntegrationBase
13 {
14 /// <summary>
15 /// product service client.
16 /// </summary>
17 private ProductServiceClient serviceInstance;
18
19 /// <summary>
20 /// Initialization test instance.
21 /// </summary>
22 [TestInitialize]
23 public void InitTestInstance()
24 {
25 serviceInstance = ProductServiceClient.CreateClient(ServiceAddressForPrd/*for dev*/);
26
27 this.CheckCurrentTestCaseIsRun(this.serviceInstance);//check current test case .
28 }
29
30 /// <summary>
31 /// Product service get product by pid test.
32 /// </summary>
33 [TestMethod]
34 public void ProductService_GetProductByPid_Test()
35 {
36 var testResult = serviceInstance.GetProductByPid(0393844);
37
38 Assert.AreNotEqual(testResult, null);
39 Assert.AreEqual(testResult.Pid, 0393844);
40 }
41
42 /// <summary>
43 /// Product service delete search index test.
44 /// </summary>
45 [TestMethod]
46 public void ProductService_DeleteProductSearchIndex_Test()
47 {
48 var testResult = serviceInstance.DeleteProductSearchIndex();
49
50 Assert.IsTrue(testResult);
51 }
52 }
53 }
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南