0

良い一日!

テストの学習と練習を始めたところです(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();
    }
}

教えてください - そのテストは正しいですか?

4

1 に答える 1