J'ai le test suivant qui vise à s'assurer que le chemin de fichier généré est d'un format spécifique. En utilisant les interfaces fluides de Nunit, comment puis-je m'y prendre?Comment tester un chemin de répertoire qui correspond à un motif/regex spécifique?
J'ai des problèmes avec la regex.
[Test]
public void AssetControlPath_ShouldHaveFormat_BaseDir_YYYY_MMM_YYYYMMMDD()
{
//Arrange
var baseDir = "C:\\BaseDir";
var fpBuilder = new FilePathBuilder(new DateTime(2010,10,10), baseDir);
//Act
var destinationPath = fpBuilder.AssetControlPath();
//Assert
// destinationPath = C:\BasDir\2010\Oct\20101010
Assert.That(destinationPath, Is.StringMatching(@"C:\\BaseDir\\d{4}\\[a-zA-Z]{3}\\d{8}"));
}
L'erreur de test unité XXX.FilepathBuilderTests.AssetControlPath_ShouldHaveFormat_BaseDir_YYYY_MMM_YYYYMMMDD: Expected: String matching "C:\\BaseDir\\d{4}\\[a-zA-Z]{3}\\d{8}" But was: "C:\BaseDir\2010\Oct\20101010"
Edit: J'ai effectivement changé le test à utiliser @ l'approche de ChrisF. La question reste cependant toujours.
Que devrait correspondre l'expression régulière? – SWeko
BTW, si vous utilisez le symbole @ pour un littéral de chaîne, vous n'avez pas besoin d'échapper la barre oblique inverse, donc @ "C: \ BaseDir \ d {4} \\ [a-zA-Z] {3}] \ d {8} "pourrait être ce dont vous avez besoin. – SWeko
@SWeko - c'est dans le commentaire au-dessus du test. Je l'ai manqué au début aussi. – ChrisF