0

このメソッドは機能します (渡された文字列でディレクトリを作成します):

internal static void ConditionallyCreateDirectory(string dirName)
{
    Directory.CreateDirectory(dirName);
}

...しかし、私の OCDish 傾向に従って、「念のため」すべてのメソッドをテストしています。私のテストプロジェクトには、このテストがあります。

[TestMethod]
public void TestConditionallyCreateDirectory()
{
    string testDirName = "testDir";
    RoboReporterConstsAndUtils.ConditionallyCreateDirectory(testDirName);
    bool dirCreated = System.IO.File.Exists(string.Format("C:\\{0}", testDirName));
    // also tried @"C:\{0}" and @"C:\\{0}"
    Assert.IsTrue(dirCreated);
}

しかし、それは失敗します。dirCreated は true ではありません。なんで?(どうやら) メソッドにステップ インして正確に何が起こっているかを確認することはできず、"Failed" メッセージには "Assert.IsTrue failed" 以外の何も表示されません。

ここに画像の説明を入力

これが失敗するのはなぜですか (fish)、なぜ失敗したのかを判断するにはどうすればよいですか (fish に教えます)。

アップデート

また、次のそれぞれを試しました。

bool dirCreated = System.IO.Directory.Exists(string.Format("C:\\{0}", testDirName));
bool dirCreated = System.IO.Directory.Exists(string.Format(@"C:\{0}", testDirName));
bool dirCreated = System.IO.Directory.Exists(string.Format(@"C:\\{0}", testDirName));
4

1 に答える 1

0

次のように記述する必要があります。

[TestMethod]
public void TestConditionallyCreateDirectory()
{
    string testDirName = "C:\\testDir";
    RoboReporterConstsAndUtils.ConditionallyCreateDirectory(testDirName);
    bool dirCreated = System.IO.Directory.Exists(testDirName);
    Assert.IsTrue(dirCreated);
}
于 2016-02-25T18:40:14.317 に答える