Öznitelik sözlüğü
Ad alanına göre öznitelikler
Microsoft.Pex.Framework
Microsoft.Pex.Framework. Ayarlar
Microsoft.Pex.Framework.Instrumentation
Microsoft.Pex.Framework.Using
Microsoft.Pex.Framework.Validation
PexAssumeNotNull
Bu öznitelik, yönetilen değerin null olamayacağını onaylar. Şu öğeye eklenebilir:
parametreli test yönteminin parametresi
// assume foo is not null [PexMethod] public void SomeTest([PexAssumeNotNull]IFoo foo, ...) {}
alan
public class Foo { // this field should not be null [PexAssumeNotNull] public object Bar; }
tür
// never consider null for Foo types [PexAssumeNotNull] public class Foo {}
Ayrıca bir test montajına, test fikstürüne veya test yöntemine bağlanabilir; bu durumda, ilk bağımsız değişkenlerin varsayımların hangi alana uygulanacağını veya yazacağını belirtmesi gerekir. Öznitelik bir türe uygulandığında, bu resmi türe sahip tüm alanlara uygulanır.
PexClass
Bu öznitelik, keşifler içeren bir sınıfı işaretler. MSTest TestClassAttribute (veya NUnit TestFixtureAttribute) eşdeğeridir. Bu öznitelik isteğe bağlıdır.
PexClass ile işaretlenmiş sınıflar varsayılan olarak oluşturulabilir olmalıdır:
- genel olarak dışarı aktarılan tür
- varsayılan oluşturucu
- soyut değil
Sınıf bu gereksinimleri karşılamıyorsa bir hata bildirilir ve araştırma başarısız olur.
IntelliTest'in sınıfın parçası olan ancak ayrı bir dosyada yeni testler oluşturabilmesi için bu sınıfların kısmi olması da önemle tavsiye edilir. Bu yaklaşım görünürlük nedeniyle birçok sorunu çözer ve C# dilinde tipik bir tekniktir.
Ek paket ve kategoriler:
[TestClass] // MSTest test fixture attribute
[PexClass(Suite = "checkin")] // fixture attribute
public partial class MyTests { ... }
Test altındaki türü belirtme:
[PexClass(typeof(Foo))] // this is a test for Foo
public partial class FooTest { ... }
sınıfı, PexMethod ile ek açıklamalı yöntemler içerebilir. IntelliTest ayrıca ayarlama ve kaldırma yöntemlerini de anlar.
PexGenericArguments
Bu öznitelik, genel parametreli birim testi örneği oluşturmak için bir tür tanımlama grubu sağlar.
PexMethod
Bu öznitelik bir yöntemi parametreli birim testi olarak işaretler. yöntemi, PexClass özniteliğiyle işaretlenmiş bir sınıfta bulunmalıdır.
IntelliTest, parametreli birim testini farklı parametrelerle çağıran geleneksel, parametresiz testler oluşturur.
Parametreli birim testi:
- örnek yöntemi olmalıdır
- oluşturulan testlerin Ayarlar Şelalesine göre yerleştirildiği test sınıfına görünür olmalıdır
- herhangi bir sayıda parametre alabilir
- genel olabilir
Örnek
[PexClass]
public partial class MyTests {
[PexMethod]
public void MyTest(int i)
{ ... }
}
PexExplorationAttributeBase
PexAssemblySettings
Bu öznitelik, tüm keşifler için varsayılan ayar değerlerini geçersiz kılmak için derleme düzeyinde ayarlanabilir.
using Microsoft.Pex.Framework;
// overriding the test framework selection
[assembly: PexAssemblySettings(TestFramework = "MSTestv2")]
PexAssemblyUnderTest
Bu öznitelik, geçerli test projesi tarafından test edilen bir derlemeyi belirtir.
[assembly: PexAssemblyUnderTest("MyAssembly")]
PexInstrumentAssemblyAttribute
Bu öznitelik, izlenecek bir derleme belirtmek için kullanılır.
Örnek
using Microsoft.Pex.Framework;
// the assembly containing ATypeFromTheAssemblyToInstrument should be instrumented
[assembly: PexInstrumentAssembly(typeof(ATypeFromTheAssemblyToInstrument))]
// the assembly name can be used as well
[assembly: PexInstrumentAssembly("MyAssemblyName")]
PexUseType
Bu öznitelik IntelliTest'e, temel türleri veya arabirimleri örneklemek (soyut) için belirli bir tür kullanabileceğini bildirir.
Örnek
[PexMethod]
[PexUseType(typeof(A))]
[PexUseType(typeof(B))]
public void MyTest(object testParameter)
{
... // IntelliTest will consider types A and B to instantiate 'testParameter'
}
PexAllowedException
Bu öznitelik bir PexMethod'a (veya pexClass'a) bağlıysa, testlerin ne zaman başarısız olduğunu gösteren varsayılan IntelliTest mantığını değiştirir. Belirtilen özel durum oluştursa bile test başarısız olarak kabul edilmez.
Örnek
Aşağıdaki test, Stack oluşturucusunun bir ArgumentOutOfRangeException oluşturabileceğini belirtir:
class Stack {
int[] _elements;
int _count;
public Stack(int capacity) {
if (capacity<0) throw new ArgumentOutOfRangeException();
_elements = new int[capacity];
_count = 0;
}
...
}
Filtre bir fikstüre aşağıdaki gibi bağlanır (montaj veya test düzeyinde de tanımlanabilir):
[PexMethod]
[PexAllowedException(typeof(ArgumentOutOfRangeException))]
class CtorTest(int capacity) {
Stack s = new Stack(capacity); // may throw ArgumentOutOfRangeException
}
PexAllowedExceptionFromAssembly
PexAllowedExceptionFromType
PexAllowedExceptionFromTypeUnderTest
Geri bildirimde mi bulunmak istiyorsunuz?
Fikirlerinizi ve özellik isteklerinizi Geliştirici Topluluğu’na gönderin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin