Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 行为驱动单元测试-名称太长_C#_Unit Testing - Fatal编程技术网

C# 行为驱动单元测试-名称太长

C# 行为驱动单元测试-名称太长,c#,unit-testing,C#,Unit Testing,最近,我被介绍到行为驱动测试中,遇到了一个关于类命名方式的问题 例如: [TestClass] public class MyObjectTests { [TestClass] public class GivenValidAgruments : MyObjectTests { [TestClass] public class WhenConfigurationIsValid : GivenValidAgruments { [TestClass]

最近,我被介绍到行为驱动测试中,遇到了一个关于类命名方式的问题

例如:

[TestClass]
public class MyObjectTests
{
  [TestClass]
  public class GivenValidAgruments : MyObjectTests
  {
    [TestClass]
    public class WhenConfigurationIsValid : GivenValidAgruments
    {
      [TestClass]
      public class WhenAnotherCaseIsTrue : WhenConfigurationIsValid
      {
        [TestMethod]
        public void ShouldDoSomething()
        {
          Assert.IsTrue(true);
        }
      }
    }
  }
}
这使得类名如下所示:

MyObjectTests.GivenValidArguments.WhenConfigurationIsValid.WhenAnotherCaseIsTrue
我可以看到这种结构的好处。不幸的是,我遇到了类名过长的问题。要么VisualStudio感到困惑,要么我在单元测试框架中遇到了某种限制,因为它使用反射来获取所有类。不管实际原因是什么,问题是名称太长


你以前遇到过这个吗?你做了什么来解决这个问题?您是否建议遵循此模式,但要使其更干净?

这些类肯定不是嵌套的,也不是继承的?顺便说一句,它们是嵌套和继承的。这个结构向我展示了他们想要的方式。这样做有很多好处。通过嵌套它们,您可以得到我上面显示的类名。这就是它在测试资源管理器中的显示方式。通过继承,您还可以生成一些漂亮的干净的设置代码。换句话说,您只需设置一次,所有子类(该逻辑流中的案例)都可以调用基setup.About CLR limits。我今天所做的一小段研究将同意你的说法。但是,我已经把它缩小到只更改一个字符的类名(或子类)长度。仍然有文件名限制。也许你在构建的时候碰到了他们?你到底在哪里遇到了问题?会发生什么?我无法复制发布代码的任何错误(它按预期工作)。