2016-04-11 8 views
0

Son zamanlarda çok garip bir davranışım var, bu yüzden garip olanı kullandığım birim çerçeve (XUnit) olup olmadığını merak etmeye başladım. Bu konuda bir soru sordum: Can Expressmapper copy to destination? ama bu artık Expressmapper hakkında değil XUnit hakkında.XUnit kodu engelleyebilir mi?

XUnit'in bir şekilde kodla etkileşime girebileceğini biliyor musunuz?

O 'birlikte ya da birbirlerinden ayrı) herhangi bir sırada çalıştırabilirsiniz ve ben her zaman bu çılgın davranışı elde:

  • İlk test başarısız (Test_xxx)
  • İşte

    soruyorum nedeni var
  • İkinci test geçiş (Test_Map)

Her iki test aynı kod içerir !!

[Fact] 
    [Trait("Test kind", "Integration")] 
    public void Test_xxx() 
    { 
     // Arrange 
     var mapper = new MappingServiceProvider(); 
     mapper.Register<MapSource, MapDestination>(); 
     var src = new MapSource 
     { 
      Id = Guid.NewGuid().GetHashCode(), 
      Guid = Guid.NewGuid(), 
      Parent = new MapSource 
      { 
       Id = Guid.NewGuid().GetHashCode(), 
       Guid = Guid.NewGuid() 
      } 
     }; 
     src.Children = Enumerable.Range(0, 3).Select(i => new MapSource 
     { 
      Id = Guid.NewGuid().GetHashCode(), 
      Guid = Guid.NewGuid() 
     }).ToList(); 
     var dst = new MapDestination(); 

     // Act 
     mapper.Map(src, dst); 

     // Assert 
     var compare = new CompareLogic(new ComparisonConfig 
     { 
      IgnoreObjectTypes = true 
     }); 
     var comparison = compare.Compare(src, dst); 
     Assert.Equal(new List<Difference>(), comparison.Differences); 
    } 

    [Fact] 
    [Trait("Test kind", "Integration")] 
    public void Test_Map() 
    { 
     // Arrange 
     var mapper = new MappingServiceProvider(); 
     mapper.Register<MapSource, MapDestination>(); 
     var src = new MapSource 
     { 
      Id = Guid.NewGuid().GetHashCode(), 
      Guid = Guid.NewGuid(), 
      Parent = new MapSource 
      { 
       Id = Guid.NewGuid().GetHashCode(), 
       Guid = Guid.NewGuid() 
      } 
     }; 
     src.Children = Enumerable.Range(0, 3).Select(i => new MapSource 
     { 
      Id = Guid.NewGuid().GetHashCode(), 
      Guid = Guid.NewGuid() 
     }).ToList(); 
     var dst = new MapDestination(); 

     // Act 
     mapper.Map(src, dst); 

     // Assert 
     var compare = new CompareLogic(new ComparisonConfig 
     { 
      IgnoreObjectTypes = true 
     }); 
     var comparison = compare.Compare(src, dst); 
     Assert.Equal(new List<Difference>(), comparison.Differences); 
    } 

cevap

0

Test_Map adlı başka bir yöntem daha vardı (farklı bir imza ile; aşırı yükleme).

XUnit, yöntem isminin benzersiz olmasını (tahmin ettiğim bir şey) gerektirdiğini tahmin ediyorum.