2013-06-11 30 views
0

我正在测试我的班级。我的方法返回给定策略ID的一系列保险费率和金额限制。 对于政策ID 43其财务限额为空,其支付的保险费百分比是95.75.我试图测试这个,但我的测试保持失败。任何人都可以告诉我哪里做错了?测试比较阵列方法失败

这是我的类

public class PatientInsuranceLimits : System.Web.UI.Page 
{ 

    String sqlConStr = ConfigurationManager.ConnectionStrings["connectionname"].ToString(); 


    public String[] generalLimits(String policyID) 
    { 
     String []resultset = new String[2]; 
     SqlConnection con = new SqlConnection(sqlConStr); 
     String sqlQuery1 = "Select InsurancePaidPercentage as iPP, FinancialLimit as fLimit from Policy where [email protected]"; 

     SqlCommand cmd1 = new SqlCommand(sqlQuery1, con); 
     cmd1.Parameters.AddWithValue("@poid", policyID); 

     try 
     { 
     con.Open(); 
      SqlDataReader r = cmd1.ExecuteReader(); 
      while(r.Read()){ 
       resultset[0] = r[0].ToString(); 
       resultset[1] = r[1].ToString(); 

      } 
      r.Close(); 
     } 
     catch(Exception ex){ 

     } 
     finally{ 
      con.Close(); 
     } 

     return resultset; 

    } 

这是我的测试类

namespace _10_06_13_test 

{ 
    [TestClass()] 
    public class PatientInsuranceLimitsTest 
    { 
     private TestContext testContextInstance; 

     public TestContext TestContext 
     { 
      get 
      { 
       return testContextInstance; 
      } 
      set 
      { 
       testContextInstance = value; 
      } 
     } 

     [DataSource("System.Data.SqlClient", "Data Source=servername_lab;Initial Catalog=IDKit;User ID=userid;Password=password", "mytable", DataAccessMethod.Sequential), TestMethod()] 
     [HostType("ASP.NET")] 
     [AspNetDevelopmentServerHost("C:\\Users", "/")] 
     [UrlToTest("http://localhost:51063/")] 
     public void generalLimitsTest() 
     { 
      SurvivalHealth.PatientInsuranceLimits target = new SurvivalHealth.PatientInsuranceLimits(); 
      string policyID = "43"; 
      string[] expected = new string[] {"95.75"}; 
      string[] actual; 
      actual = target.generalLimits(policyID); 
      Assert.AreEqual(expected, actual); 
     } 
    } 
}  
+0

当你做Assert.AreEqual(expected [0],actual [0])时会发生什么; –

+0

@BobTheJanitor它仍然失败 – kombo

+0

对测试进行调试,看看值是什么,它们是否匹配? –

回答

1

该函数返回包含空和 “19.75” 的阵列。 您需要将分配的值更改为{ null, "19.75"}

但是,如果您使用.net 2或更高版本,我会建议您更改方法以返回一个元组以防止出现此类错误。将数字存储为数字数据类型(如十进制)可能也是一个好主意。