Heim > Betrieb und Instandhaltung > Windows-Betrieb und -Wartung > Ausführliches Tutorial zur Verwendung von Testcode für die Windows 8-Entwicklung

Ausführliches Tutorial zur Verwendung von Testcode für die Windows 8-Entwicklung

零下一度
Freigeben: 2017-05-24 15:00:51
Original
1803 Leute haben es durchsucht

In diesem Artikel wird erläutert, wie Sie Testcode für die Windows 8-Entwicklung verwenden. Freunde in Not können sich auf

1. Lösungen und KomponententestsProjekte
 1) beziehen Wählen Sie dann „Neues Projekt“.
 2) Erweitern Sie im Dialogfeld „Neues Projekt“ „Installiert“, „Visual C#“ und wählen Sie „Windows Store“. Wählen Sie dann „Leere Bewerbung“ aus der Liste der Projektvorlagen aus.
3) Benennen Sie das Projekt „MyTestProject“ und stellen Sie sicher, dass „Lösungsverzeichnis erstellen“ ausgewählt ist.
4) Wählen Sie im Projektmappen-Explorer den Lösungsnamen aus, wählen Sie „Hinzufügen“ aus dem Kontextmenü und dann „Neues Projekt“.
5) Erweitern Sie im Dialogfeld „Neues Projekt“ „Installiert“, „Visual C#“ und wählen Sie dann „Windows Store“. Wählen Sie dann Unit Test Library (Windows Store App) aus der Liste der Projektvorlagen aus.

Hinweis: Erstellen Sie zuerst ein Projekt und fügen Sie dann ein Testprojekt zu diesem Projekt hinzu. Dies entspricht unserem Bedarf, unser Projekt während der Entwicklung zu testen.

 6). Öffnen Sie UnitTest1.cs im Visual Studio-Editor.

Der Code lautet wie folgt:

namespace UnitTestLibraryTest{    [TestClass]    public class UnitTest1    {            [TestMethod]        public void TestMethod1()        {</p>
<p>        }    }}
Nach dem Login kopieren

Beachten Sie Folgendes:

a Jeder Test wird mit [TestMethod] definiert. . Testmethoden müssen „void“ zurückgeben und dürfen keine Parameter haben. Fügen Sie in der Zeile vor dem Klassennamen die Deklaration von [TestClass] hinzu. Die Testmethode muss sich in einer Klasse befinden, die mit dem Attribut [TestMethod] versehen ist. Beim Ausführen eines Tests wird eine Instanz jeder Testklasse erstellt. Testmethoden werden in einer nicht festgelegten Reihenfolge aufgerufen.

c. Sie können bestimmte Methoden definieren, die vor und nach jedem Modul, jeder Klasse oder jeder Methode aufgerufen werden sollen.

d. Fügen Sie im Kopf der Datei einen Verweis auf die Verwendung von Microsoft.VisualStudio.TestPlatform.UnitTestFramework hinzu.

7). Initialisierung vor dem Test und Bereinigung nach dem Test. Die Verwendung und der Code lauten wie folgt:



Der Code lautet wie folgt:

Hinweis: Für die obige Methode kann der Methodenname angepasst werden Es gibt keinen Rückgabewert außer dem von [ClassInitialize]. Die Funktion hat keine anderen Parameter als den TestContext-Parameter.
namespace UnitTestLibraryTest
{
    [TestClass]
    public class UnitTest1
    {
        private int a;
        private int b;</p>
<p>        // 当前测试类运行第一个测试方法之前执行,类似于
构造函数
        [ClassInitialize]
        public 
static
 void MyClassInit(TestContext context)
        {
        }
        // 所有测试方法运行完毕后执行,类似于
析构函数
        [ClassCleanup]
        public static void MyClass
End
()
        { 
        }</p>
<p>        //每个测试方法运行之前执行
        [TestInitialize]
        public void Init()
        {
            a = 1;
            b = 1;
        }
        //每个测试方法运行之后执行
        [TestCleanup]
        public void End()
        {
            a = 0;
            b = 0;
        }</p>
<p>    }
}
Nach dem Login kopieren

2. Überprüfen Sie, ob der Test im Testmanagement-Ressourcer ausgeführt wird

 1). Code Wie folgt:


Beachten Sie, dass mehrere von der Assert-Klasse bereitgestellte

statische

Methoden verwendet werden können, um die Ergebnisse der Testmethode zu überprüfen.
[TestMethod]
        public void AddTestMethod()
        {
            int a = 1;
            int b = 2;
            int sum = a+b;
            Assert.AreEqual(3,sum);
        }
Nach dem Login kopieren

2) Wählen Sie im Menü „Test“ „Ausführen“ und dann „Alle ausführen“.
Das Testprojekt wird generiert und ausgeführt. Das Fenster „Test Explorer“ wird angezeigt und die Tests werden unter „Bestandene Tests“ aufgelistet. Der Bereich „Zusammenfassung“ am unteren Rand des Fensters bietet zusätzliche Details zum ausgewählten Test.

 


3. Fügen Sie die Rooter-Klasse zum MyTestProject-Projekt hinzu

 1). Wählen Sie im „Solution Explorer“ das Projekt „MyTestProject“. Name. Wählen Sie im Kontextmenü „Hinzufügen“ und dann „Klasse“ aus.

 2). Benennen Sie die Klassendatei Rooter.cs.  3). SquareRoot-Schätzmethode.

 4).SqareRoot-Methode ist nur eine minimale Implementierung, die ausreicht, um die grundlegende Teststruktur zum Testen einzurichten.


4. Testprojekte in Anwendungsprojekte zusammenführen

 1).

2). Fügen Sie eine using-Anweisung zur Datei UnitTest1.cs hinzu:

public class Rooter
    {
        public Rooter()
        { 
        }
        public double SquareRoot(double x)
        {
            
return
 0.0;
        }
    }
Nach dem Login kopieren
a.

b. Fügen Sie Code unter der Zeile mit Microsoft.VisualStudio.TestPlatform.UnitTestFramework; hinzu: mit MyTestProject;

3). Fügen Sie den folgenden Code zu UnitTest1.cs hinzu:

Der Code lautet wie folgt:

 4).

Der neue Test wird im Knoten „Nicht ausgeführte Tests“ des Test-Explorers angezeigt.

 5) Wählen Sie im Test-Explorer „Alle ausführen“. Basistest bestanden

Sie haben Ihre Tests und Ihr Codeprojekt eingerichtet und überprüft, dass Sie Tests ausführen können, die Funktionen in Ihrem Codeprojekt ausführen. Jetzt können Sie mit dem Schreiben echter Tests und Code beginnen.

5. Fügen Sie iterativ Tests hinzu und sorgen Sie dafür, dass diese Tests bestehen.
[TestMethod]
        public void BasicTest()
        {
            Rooter rooter = 
new
 Rooter();
            double expected = 0.0;
            double actual = rooter.SquareRoot(expected * expected);
            double tolerance = .001;
            Assert.AreEqual(expected, actual, tolerance);
        }
Nach dem Login kopieren

1). Fügen Sie einen neuen Test hinzu:

Der Code lautet wie folgt:

[TestMethod]
        public void 
Range
Test()
        {
            Rooter rooter = new Rooter();
            for (double v = 1e-6; v < 1e6; v = v * 3.2)
            {
                double expected = v;
                double actual = rooter.SquareRoot(v * v);
                double tolerance = ToleranceHelper(v);
                Assert.AreEqual(expected, actual, tolerance);
            }
        }</p>
<p>        private double ToleranceHelper(double expected)
        {
            return expected / 3.2; 
        }
Nach dem Login kopieren

提示:建议您不要更改已通过的测试。而是添加新测试,更新代码以便测试通过,然后添加其他测试等。 当您的用户更改其要求时,请禁用不再正确的测试。编写新测试并使它们以相同的增量方式一次运行一个。

2).在测试资源管理器中,选择“全部运行”。

3).测试将不会通过。 RangeTest 未通过

提示:编写测试后,立即验证每个测试是否都将失败。这帮助您避免易犯的错误,不会编写从不失败的测试。

  4).增强受测代码,以便新测试通过。将 Rooter.cs 中的 SqareRoot 函数更改为:

代码如下:

public double SquareRoot(double x)
        {
            double estimate = x;
            double d
if
f = x;
            
while
 (diff > estimate / 1000)
            {
                double 
prev
iousEstimate = estimate;
                estimate = estimate - (estimate * estimate - x) / (2 * estimate);
                diff = Math.Abs(previousEstimate - estimate);
            }
            return estimate;
        }
Nach dem Login kopieren

  5).生成解决方案,然后在测试资源管理器中,选择“全部运行”。

  现在所有三个测试都将通过。

  提示:通过添加测试的方式一次性开发代码。确保所有测试在每次迭代后都通过。

6.调用未通过的测试

  1).向 UnitTest1.cs 添加另一个测试:

代码如下:

[TestMethod]        public void NegativeRangeTest()        {            string message;            Rooter rooter = new Rooter();            for (double v = -0.1; v > -3.0; v = v - 0.5)            {                try                {                    // Should raise an exception:                    double actual = rooter.SquareRoot(v);</p>
<p>                    message = String.Format("No exception for input {0}", v);                    Assert.Fail(message);                }                catch (ArgumentOutOfRangeException ex)                {                    continue; // Correct exception.                }                catch (Exception e)                {                    message = String.Format("Incorrect exception for {0}", v);                    Assert.Fail(message);                }            }        }
Nach dem Login kopieren

  2).在测试资源管理器中,选择“全部运行”。

  测试将不会通过。在测试资源管理器中选择测试名称。将突出显示失败的断言。失败消息将在测试资源管理器的细节窗格中可见。NegativeRangeTests 未通过。

  3).若要查看测试未通过的原因,请单步执行以下函数:

  a.在 SquareRoot 函数的开头设置断点。

  b.在未通过测试的快捷菜单上,选择“调试选定的测试”。 当运行在断点处停止时,请单步执行以下代码。

  c.向 Rooter 方法添加代码以捕获异常,将SquareRoot方法修改如下(对x进行判断捕获异常):

代码如下:

public double SquareRoot(double x)
        {
            if (x < 0.0)
            {
                throw new ArgumentOutOfRangeException();
            }
            double estimate = x;
            double diff = x;
            while (diff > estimate / 1000)
            {
                double previousEstimate = estimate;
                estimate = estimate - (estimate * estimate - x) / (2 * estimate);
                diff = Math.Abs(previousEstimate - estimate);
            }
            return estimate;
        }
Nach dem Login kopieren

  在测试资源管理器中,选择“全部运行”以测试已纠正的方法,并确保您未引入回归测试。所有测试都将通过。

【相关推荐】

1. Windows7下的Java开发环境搭建步骤(图解)

2. Windows系统下安装Ulipad编辑器

3. 使用Python开发windows桌面程序

4. 教你如何在Windows环境下安装python2和python3两个版本

Das obige ist der detaillierte Inhalt vonAusführliches Tutorial zur Verwendung von Testcode für die Windows 8-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage