2017-07-19 1 views
-1

Ich arbeite für eine Anwendung, die über Filteroptionen verfügt, um die Daten zu filtern.Gerätetest für die Kombination von Eingängen

Ich möchte jede Kombination von Eingaben testen, für die meine Methode funktionieren wird. Zum Beispiel muß ich Unit-Test für jede Kombination schreiben wie unten:

[TestClass] 
public class Data_Should_Filter 
{ 
    [TestMethod] 
    public void _For_Category() 
    { 

    } 

    [TestMethod] 
    public void _For_Product_And_Category() 
    { 

    } 

    [TestMethod] 
    public void _For_Product_CreationDate() 
    { 

    } 
} 

Gibt es eine Möglichkeit jede Kombination von Daten mit einzelnem Test zu testen. Ich überprüfe die blog für NUnit Test. Was ist der mögliche Weg, um diese Art von Tests zu erreichen, und welche sind die Frameworks, die Kombinationstests unterstützen?

Antwort

2

Ja, es ist möglich, mit NUnit 2.5 und höher

[TestCase(12,3,4)] 
[TestCase(12,2,6)] 
[TestCase(12,4,3)] 
public void DivideTest(int n, int d, int q) 
{ 
    Assert.AreEqual(q, n/d); 
} 

ein paar mehr Infos here

+0

Vielen Dank für Details, aber wie Sie sehen können, müssen wir TestCase hier zur Verfügung stellen. Ich möchte wissen, gibt es einen Rahmen, der dies automatisch tun kann. Ich recherchierte einen gefundenen FsCheck, kann aber keine Erfahrung damit haben. –

+1

Sie möchten also Ihren Code lesen und Unit-Tests automatisch erstellen? Ich denke, das nennt man einen Programmierer oder Entwickler etc ... –

+0

In diesem Fall möchten Sie vielleicht in https://github.com/nunit/docs/wiki/Theory-Attribute schauen. –

0

Es ist sicherlich möglich, mit Nunit:

[TestFixture] 
    public class Data_Should_Filter 
    { 
     [Test] 
     [TestCase(new Product(1), new Category(2), DateTime.UtcNow)] 
     [TestCase(new Product(2), new Category(2), DateTime.UtcNow)] 
     public void TestFilter(Product product, Category category, DateTime creationDate) 
     { 

     } 
    } 
-1

diese Bibliothek gefunden, die für Zufallskombinationen verwendet werden können, Prüfung: FsCheck

0

Sie haben keine Beispiele angegeben, was Sie automatisch kombinieren möchten, also musste ich es für diese Antwort erfinden.

NUnit bietet verschiedene Möglichkeiten, Daten als ein Argument anzugeben, das einem einzelnen Parameter der Testmethode entspricht, sowie verschiedene Kombinationsmöglichkeiten dieser Argumente.

Argumente angeben: * ValuesAttribute * ValueSourceAttribute * RandomAttribute * RangeAttribute

generieren Kombinationen der oben genannten Werte: * CombinatorialAttribute (dies ist die Standardeinstellung, wenn Sie etwas nicht verwenden) * PairwiseAtribute * SequentialAttribute

Beispiel ...

[Test] 
public void TestProcuctAndCategory(
    [Values("ProductA", ProductB")] string productName, 
    [Values("Cat1", "Cat2", "Cat3")] string category) 
{ 
    // Test will be executed six times, using all combinations 
    // of the values provided for the two arguments. 
} 
Verwandte Themen