有没有办法在不测试整个应用程序的情况下对 Class 库(通用 Windows)进行单元测试?

Is there a way to UnitTest a Class Library (Universal Windows) without testing a whole application?

我需要对 Class Library (Universal Windows) 进行单元测试,但是从 "Add New Project" windows,我只看到了这个:

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

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

    [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);
    }

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

现在便携式 Class 库 - 现在在 Visual Studio 中称为 "Class Library (Legacy Portable)" - 是 "legacy",我认为这个问题的答案略有改变。

如果您想为 UWP 应用程序的非 UI 相关逻辑编写单元测试,请将其拉​​出到 .NET Standard Class 库中。 UWP 应用可以毫无问题地引用 .NET Standard 2.0 class 库。

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

我今天在我的解决方案开始工作后写了 a short blog post