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。我今天所做的一小段研究将同意你的说法。但是,我已经把它缩小到只更改一个字符的类名(或子类)长度。仍然有文件名限制。也许你在构建的时候碰到了他们?你到底在哪里遇到了问题?会发生什么?我无法复制发布代码的任何错误(它按预期工作)。