在没有测试整个应用程序的情况下,有没有办法让UnitTest成为类库(通用Windows)?

时间:2015-12-06 23:07:15

标签: c# unit-testing visual-studio-2015 uwp

我需要UnitTest Class Library (Universal Windows),但是从“添加新项目”窗口,我只看到这个:

enter image description here

此项目使用App Container运行所有测试,它始终打开一个App。由于我不需要所有这些开销,我想知道是否有单元测试UWP库的方法。

3 个答案:

答案 0 :(得分:5)

快速回答是,如果您需要测试与UI相关的类,您需要使用这种"单元测试"。但是,如果您有要测试的逻辑 - 将其提取到可移植库(PCL)并使用普通的旧单元测试框架独立测试它。

答案 1 :(得分:1)

现在,可移植类库(在Visual Studio中现在称为“类库(可移植的传统)”)是“旧版”,我认为此问题的答案已略有改变。

如果要为UWP应用程序的非UI逻辑编写单元测试,请将其拉​​入.NET标准类库。 UWP应用程序可以毫无问题地引用.NET Standard 2.0类库。

要实际测试类库(.NET标准),您需要创建一个NUnit / xUnit / MSTest项目(.NET Core)并添加对类库(.NET Standard)的引用。

今天,一旦解决方案生效,我就为此写过a short blog post

答案 2 :(得分:0)

向项目添加一个类库,并添加nUnit nuget库和对要测试的类库的引用

    [TestMethod]
    public void TestCalculationFruitSmoothie()
    {
        PointsCalculator2.Core.CalculationHelper helper = new PointsCalculator2.Core.CalculationHelper();

        int actual = helper.CalculatePoints(1, 25, 4, 6, false);
        int expect = 3;
        Assert.AreEqual(expect, actual);
    }