5

Eine Funktion, die ich schon lange in MSTest sehen wollte, waren parametrisierte Unit Tests (PUTs). Ich war aufgeregt, das Intellitest would be capable of creating said tests zu hören. Ich habe jedoch begonnen, mit Intellitest zu spielen, und ich denke, dass meine Definition von PUTs anders ist als die von Microsoft.Parametrisierte Unit-Tests mit Visual Studio 2015 Intellitest

Wenn ich "PUT" denke, denke ich TestCases in NUnit, oder Theories in xUnit. Menschen viel schlauer als ich seem to use the same terminology. Kann mir jemand sagen, ob Intellitest tatsächlich in der Lage ist, ein PUT auf die gleiche Weise wie NUnit oder xUnit zu erstellen, oder ist das ein Problem mit einem überladenen Begriff in Intellitest und einem anderen Testframework? Vielen Dank.

Antwort

1

Ein parametrisierter Komponententest (PUT) ist die einfache Verallgemeinerung eines Komponententests durch die Verwendung von Parametern. Ein PUT macht Aussagen über das Verhalten des Codes für eine ganze Reihe von möglichen Eingabewerten statt nur für einen einzelnen beispielhaften Eingabewert. Insofern ähnelt es den von Ihnen bereitgestellten Links. Wo es anders ist, wenn es darum geht, die Daten zu generieren, die in den parametrierten Komponententest eingespeist werden sollen - IntelliTest kann automatisch Eingabedaten für den PUT erzeugen. Ich bitte Sie bitten, folgendes zu beachten: http://blogs.msdn.com/b/visualstudioalm/archive/2015/07/05/intellitest-one-test-to-rule-them-all.aspx für den Kontext.

0

As of June 2016, hat diese Funktion auf „MSTest V2“ hinzugefügt, der die MSTest.TestAdapter und MSTest.TestFramework Pakete durch Hinzufügen über NuGet installiert werden kann:

Install-Package MSTest.TestAdapter 
Install-Package MSTest.TestFramework 

bewusst sein, dass diese unterschiedlich sind als die Version des Test Framework, das mit z Visual Studio 2017. Um sie zu verwenden, müssen Sie wahrscheinlich die Referenz (en) zu Microsoft.VisualStudio.QualityTools.UnitTestFramework entfernen.

Sobald diese installiert sind, können Sie einfach die RowDataAttribute verwenden, wie im folgenden Beispiel gezeigt:

[TestMethod] 
[DataRow(1, 1, 2)] 
[DataRow(3, 3, 6)] 
[DataRow(9, -4, 5)] 
public void AdditionTest(int first, int second, int expected) { 
    var sum = first+second; 
    Assert.AreEqual<int>(expected, sum); 
} 

Offensichtlich Sie auf int hier nicht eingeschränkt. Sie können auch string, float, bool oder andere primitive value type verwenden.

Dies ist identisch mit der zuvor verfügbaren Implementierung zu Windows Store App projects, wenn Sie mit dieser Implementierung vertraut sind.