如何对下面的类进行单元测试,因为代码中没有任何值且没有返回,我应该在不修改代码的情况下进行单元测试。我应该在测试单元中写什么
任何帮助?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace ORS
{
public partial class DoctorAddEditMarks : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label2.Text = "" + Session["Username"];
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("~/DoctorMainPage.aspx");
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("~/LoginPage.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
GridViewRow row = GridView1.Rows[i];
string coursecode = DropDownList1.SelectedValue.ToString();
string marktype = DropDownList2.SelectedValue.ToString();
string fullmark = TextBox1.Text;
string stid = row.Cells[0].Text;
TextBox txtmark = (TextBox)row.Cells[1].FindControl("TextBox2");
string mark = txtmark.Text;
String strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
String query = "insert into Marks values (@St_ID, @CourseCode, @MarkType, @Mark, @FullMark)";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@CourseCode", coursecode);
cmd.Parameters.AddWithValue("@St_ID", stid);
cmd.Parameters.AddWithValue("@MarkType", marktype);
cmd.Parameters.AddWithValue("@Mark", mark);
cmd.Parameters.AddWithValue("@FullMark", fullmark);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Marks are SuccessFully Saved');window.location ='DoctorAddEditMarks.aspx';", true);
}
}
}
答案 0 :(得分:0)
能够对此进行测试的第一步是将数据库代码隔离到自己的类中。单元测试.aspx页面几乎是不可能的。
您编写的测试在技术上不是单元测试 - 它是一个集成测试。不同之处仅在于它的测试不仅仅是您的代码。它正在测试代码和数据库的组合功能。
This page显示了编写这些测试的一些简单方法。它遵循典型的编配/行为/断言模式。
安排
行动
断言
然后我通常会在最后进行清理,以删除我修改的任何测试数据,这通常只是重复第一步。