我在c#VS 2012中尝试unit test
一个简单的函数(编译到库中)。
public static class Configuration
{
public static T DeSerialize<T>(string filePath)
{
if (!System.IO.File.Exists(filePath))
{
throw new System.IO.FileNotFoundException(filePath);
}
using (Stream reader = new FileStream(filePath, FileMode.Open))
{
var serializer = new System.Xml.Serialization.XmlSerializer(T);
return (T)serializer.Deserialize(reader);
}
}
}
[TestClass]
public class Test
{
[TestMethod]
public void deserializationTest()
{
var something = Configuration.DeSerialize<Item>(@"d:\CoffeeShop.Items.config");
Console.WriteLine(something);
}
}
但是,我被what to do next?
困扰了。什么namespaces should I import
。
任何指针都非常感激。
答案 0 :(得分:3)
您应该使用Microsoft.VisualStudio.TestTools.UnitTesting
命名空间,该命名空间包含MSTest框架类(正如TestClass
和TestMethod
属性所暗示的那样使用)。然后,您应该使用Assert
类'方法来验证您的测试结果。您的代码可能如下所示:
`
[TestMethod]
public void deserializationTest()
{
var something = Configuration.DeSerialize<Item>(@"d:\CoffeeShop.Items.config");
Assert.AreEqual("expected item name", something.Name);
}
此测试验证DeSerialize
调用返回Item
哪个Name
属性等于"expected item name"
。当然,这只是关于你的Item
课程如何看待的假设,但你可能会得到要点。
如果您开始使用Visual Studio中的单元测试,本教程可能会派上用场:http://msdn.microsoft.com/en-us/library/ms182532.aspx