You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在.NET Fiddle中运行单元测试?

能否在.NET Fiddle中运行单元测试?

当然可以啦!你肯定注意到了,.NET Fiddle默认是按照控制台应用来运行的,得靠Program.Main当入口点,而单元测试一般是在类库项目里用dotnet test命令执行的,但这完全难不倒我们,下面给你分享两种能在Fiddle里跑通单元测试的办法:

方法一:用xUnit框架手动触发测试

如果你习惯用xUnit这类成熟的测试框架,只需要两步就能搞定:

  1. 在Fiddle的NuGet包管理面板里添加xUnit依赖
  2. 给代码加一个控制台入口,手动实例化测试类并调用测试方法

修改后的可运行代码如下:

using System;
using Xunit;

public class Program
{
    public static void Main()
    {
        try
        {
            // 实例化测试类并执行测试方法
            var testRunner = new CalculatorTests();
            testRunner.Add_WhenCalledWithTwoIntegers_ReturnsTheirSum();
            Console.WriteLine("✅ 所有测试通过!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"❌ 测试失败:{ex.Message}");
        }
    }
}

public class CalculatorTests
{
    [Fact]
    public void Add_WhenCalledWithTwoIntegers_ReturnsTheirSum()
    {
        // Arrange
        var calculator = new Calculator();
        
        // Act
        var result = calculator.Add(2, 3);

        // Assert
        Assert.Equal(5, result);
    }

    private class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

运行之后,如果测试通过会输出成功提示,要是断言失败,也会捕获异常并告诉你具体哪里出问题了。

方法二:自己实现简单断言(无需外部依赖)

要是你不想加NuGet包,也可以自己写个极简版的断言逻辑,完全不依赖外部框架,适合简单的测试场景:

using System;

public class Program
{
    public static void Main()
    {
        try
        {
            var testRunner = new CalculatorTests();
            testRunner.Add_WhenCalledWithTwoIntegers_ReturnsTheirSum();
            Console.WriteLine("✅ 所有测试通过!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"❌ 测试失败:{ex.Message}");
        }
    }
}

// 自己实现简单的断言方法
public static class Assert
{
    public static void Equal(int expected, int actual)
    {
        if (expected != actual)
        {
            throw new Exception($"预期值是 {expected},但实际得到 {actual}");
        }
    }
}

public class CalculatorTests
{
    public void Add_WhenCalledWithTwoIntegers_ReturnsTheirSum()
    {
        // Arrange
        var calculator = new Calculator();
        
        // Act
        var result = calculator.Add(2, 3);

        // Assert
        Assert.Equal(5, result);
    }

    private class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

简单来说,虽然Fiddle没有内置的测试运行器,但我们可以通过手动触发测试方法的方式,完美在Fiddle里实现单元测试的效果,不管是用成熟框架还是自己写极简逻辑都能行~

备注:内容来源于stack exchange,提问作者KyleMit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:58:18