最近项目经理让写单元测试,以前没有写过不知道怎么写,也看了一些网上的资料的,还是有一点模糊,请各位高手指点一下谢谢啦!一个最简单的类怎么测试
my Controllers:
[AuthenticationFilter]
public class AssignRoleController : Controller
{
// GET: /AssignRole/
/*展示出用户权限*/
public ActionResult Index(string loginname)
{
// Guid UserID;
ViewData["UserID"] = loginname.ToString();
ViewData["MessageBox"] = "";
if (loginname == null)
{
ViewData["UserID"] = "10329527-1001-1001-1001-012345678910";
}
return View("AssignRole");
}
}自动生成的如下:不知道应该怎么改了
///</summary>
[TestClass()]
public class AssignRoleControllerTest
{
private TestContext testContextInstance; /// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
} #region 附加测试属性
//
//编写测试时,还可使用以下属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext)
//{
//}
//
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//使用 TestInitialize 在运行每个测试前先运行代码
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//使用 TestCleanup 在运行完每个测试后运行代码
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
/// <summary>
///Index 的测试
///</summary>
// TODO: 确保 UrlToTest 属性指定一个指向 ASP.NET 页的 URL(例如,
// http://.../Default.aspx)。这对于在 Web 服务器上执行单元测试是必需的,
//无论要测试页、Web 服务还是 WCF 服务都是如此。
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\Touch.Web", "/")]
[UrlToTest("http://localhost:18608/")]
public void IndexTest()
{
AssignRoleController target = new AssignRoleController(); // TODO: 初始化为适当的值
string loginname = ; // TODO: 初始化为适当的值
ActionResult expected =; // TODO: 初始化为适当的值
ActionResult actual;
actual = target.Index(loginname);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
my Controllers:
[AuthenticationFilter]
public class AssignRoleController : Controller
{
// GET: /AssignRole/
/*展示出用户权限*/
public ActionResult Index(string loginname)
{
// Guid UserID;
ViewData["UserID"] = loginname.ToString();
ViewData["MessageBox"] = "";
if (loginname == null)
{
ViewData["UserID"] = "10329527-1001-1001-1001-012345678910";
}
return View("AssignRole");
}
}自动生成的如下:不知道应该怎么改了
///</summary>
[TestClass()]
public class AssignRoleControllerTest
{
private TestContext testContextInstance; /// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
} #region 附加测试属性
//
//编写测试时,还可使用以下属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext)
//{
//}
//
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//使用 TestInitialize 在运行每个测试前先运行代码
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//使用 TestCleanup 在运行完每个测试后运行代码
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
/// <summary>
///Index 的测试
///</summary>
// TODO: 确保 UrlToTest 属性指定一个指向 ASP.NET 页的 URL(例如,
// http://.../Default.aspx)。这对于在 Web 服务器上执行单元测试是必需的,
//无论要测试页、Web 服务还是 WCF 服务都是如此。
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\Touch.Web", "/")]
[UrlToTest("http://localhost:18608/")]
public void IndexTest()
{
AssignRoleController target = new AssignRoleController(); // TODO: 初始化为适当的值
string loginname = ; // TODO: 初始化为适当的值
ActionResult expected =; // TODO: 初始化为适当的值
ActionResult actual;
actual = target.Index(loginname);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
解决方案 »
- 关于反射和Com
- vs.net 中能不能只折叠region定义的块
- datagridview中添加查询的功能
- (急!)简单问题高分求救
- [ITextSharp 问题]用itextsharp 5.0.6 不知道如何获取PDF页面的内容,当PDF类型为Distiller时
- sql调用exe时exe不显示的问题
- 求助,关于C#的网络简单编程问题
- 求winform的表格控件(给个提示也行)
- 【调查贴】大家用.NET是做WINFORM还是ASP.NET?
- C#中怎样用DirectX,有好用的类封装吗?
- 手动安装服务时,提示以下错误信息,应该怎么办?
- 紧急求助:Console关闭事件 -- SetConsoleCtrlHandler的奇怪问题
如果2个结果一样 自动测试就会认为这个测试通过 运行起来就是绿点
单元测试中常用的“断言方法”:
Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过;
Assert.Inconclusive() 表示一个未验证的测试;
Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过;
Assert.IsFalse() 测试指定的条件是否为False,如果为False,则测试通过;
Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过;
Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过;
这个我知道的。
方法的模拟。但是对以上的方法我还是不能想出来是怎么模拟的。请高手什么帮助回复一下,或是哪里有相关的知识给提示一下。