良い一日!
テストの学習と練習を始めたところです(TDDではありません:))。それで、私はいくつかの小さなテストを書きましたが、わかりません-それは正しいですか?それは緑ですが、赤にはできません(失敗)。
この msdn フォーラムを例として使用します。
だから、私は 1 つの関数を持つインターフェイスを作成します。パラメータ options- いくつかのフィールドを持つオブジェクト- 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();
}
}
教えてください - そのテストは正しいですか?