能否在.NET Fiddle中运行单元测试?
能否在.NET Fiddle中运行单元测试?
当然可以啦!你肯定注意到了,.NET Fiddle默认是按照控制台应用来运行的,得靠Program.Main当入口点,而单元测试一般是在类库项目里用dotnet test命令执行的,但这完全难不倒我们,下面给你分享两种能在Fiddle里跑通单元测试的办法:
方法一:用xUnit框架手动触发测试
如果你习惯用xUnit这类成熟的测试框架,只需要两步就能搞定:
- 在Fiddle的NuGet包管理面板里添加xUnit依赖
- 给代码加一个控制台入口,手动实例化测试类并调用测试方法
修改后的可运行代码如下:
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
相关产品推荐
相关产品推荐

