再会!
我刚刚开始学习和练习测试(不是 TDD :))。所以,我写了一些小测试,但不知道 - 对吗?它是绿色的,但我不能做红色(失败)。
我以这个 msdn 论坛为例来做这件事。
因此,我创建了一个具有一个功能的界面。参数选项 - 带有一些字段的对象 - options.Name 例如。
public interface ICmdParseWrapper
{
String getName(ServiceArgs options);
}
public class CmdParserWrapper
{
private readonly ICmdParseWrapper dependency;
public CmdParserWrapper(ICmdParseWrapper dependency)
{
this.dependency = dependency;
}
public String ValidateGetName(ServiceArgs options)
{
return this.dependency.getName(options);
}
public static String getName(ServiceArgs options)
{
return (!String.IsNullOrEmpty(options.Name)) ? options.Name : "Error in getName! is null or empty";
}
}
所以,我创建了 testMethod 并且它通过了!但我不确定——我对吗?我更改字符串“错误!...”但测试再次通过。这里有这个类和测试方法。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod_getName()
{
ServiceArgs options=new ServiceArgs();
// options.ModeName="";
var mock = new Mock<ICmdParseWrapper>();
mock.Setup(foo=>foo.getName(options)).Returns("Error in getName! is null or empty");
var testClass = new CmdParserWrapper(mock.Object);
String validateGetName = testClass.ValidateGetName(options);
mock.VerifyAll();
}
}
拜托,你能告诉我——那个测试对吗?