NSpec 死了吗?有继任者吗?

问题描述

有谁知道 NSpec 或类似的替代品是否仍然有效?

最近在 Scala 世界里呆了一段时间,当我回到 C# 时,我突然发现 C# 中的标准单元测试风格真的很笨拙。

我遇到了 NSpec 并且非常喜欢它。似乎让我能够以 Typescript 和 Scala 提供的风格编写测试,而不是我习惯的 C# 风格:

  • [测试] When_CharacterAttacksOtherCharacter_OtherCharacterHealthGoesDownByAttackPower
  • [测试] When_CharacterAttacksOtherCharacter_OtherCharacterDiesWhenHealthBelow
  • [测试] When_CharacterAttacksOtherCharacter_AttackPowerIsMoreWhenTypeAdvantage

它让我以这种方式写作

//context methods are discovered by NSpec (any method that contains underscores)
    void describe_BattleSystem()
    {
        //contexts can be nested n-deep and contain befores and specifications
        context["characters are in battle"] = () =>
        {
            before = () =>
            {
                ModifierRepository modifierRepository = new ModifierRepository();
                battleSystem = new BattleSystem(characterAttackPowerRepo,characterHealthRepo,characterTypeRepo,modifierRepository);
            };


            context["character attacks another character"] = () =>
            {
                before = () => battleSystem.Attack("Hero","Ogre");
                
                it["defending characters' health goes down by attack character attack power"] = () =>
                {
                    battleSystem.GetHealth("Ogre").Should().Be(90);
                };
                
                it["other character dies when health below 0"] = () =>
                {
                    for (int i = 0; i < 100; ++i)
                        battleSystem.Attack("Hero","Ogre");
                        
                    battleSystem.IsDead("Ogre").Should().Be(true);
                };
            };
        };
    }

我觉得这是一种更好的编写测试的方式。

但似乎 NSpec 上次更新是在 4 年前。而且我根本无法让测试运行器工作。 IDE 支持似乎几乎

Resharper test runner with NSpec

但我不确定 .exes 是否已过时(按照手动步骤不再起作用)或者我是否在设置中遗漏了某些内容并且我看不到它如何展开到“它”等级。上面的图片来自 ReSharper 我也用带有 VS 扩展的 Visual Studio 尝试过,但遇到了同样的问题。

有谁知道 NSpec 是否还活着或者是否有继任者?或类似的东西?我并不是真的在这里寻找完整的 BDD(如 SpecFlow)我觉得关键是:

  • 能够以字符串形式编写测试(去掉那些下划线)
  • 将测试嵌套到合理的单元中

或者如果有人有办法在我缺少的标准 xUnit 等中执行上述操作:)

作为参考,我已将我的测试上传到这个 git hub 文件夹: https://github.com/chrispepper1989/RPGAsAService/tree/nspec_test/RPGAAS/RPGAAS/tests

它包含我编写测试的原始方式(在标准 XUnit 中)和我觉得我更喜欢的 NSpec 版本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...