在xBehave.net中使用空格测试名称?
我想在xBehave和NSpec之间做出决定。我喜欢NSpec的一点是,如果使用某些语法,可以将测试名称指定为带空格的字符串:在xBehave.net中使用空格测试名称?,.net,tdd,bdd,.net,Tdd,Bdd,我想在xBehave和NSpec之间做出决定。我喜欢NSpec的一点是,如果使用某些语法,可以将测试名称指定为带空格的字符串: context["when no subscriptions exist"] = () => { ... } 这很好,因为我会输入很多这样的内容,而且它们都是句子长度,所以CamelCase或下划线将是一个相对痛苦的问题 有人知道在xBehave.net中做类似事情的方法吗?我刚开始使用xBehave.net,但典型的测试是这样的 公共类计算器功能 { [场景]
context["when no subscriptions exist"] = () => { ... }
这很好,因为我会输入很多这样的内容,而且它们都是句子长度,所以CamelCase或下划线将是一个相对痛苦的问题
有人知道在xBehave.net中做类似事情的方法吗?我刚开始使用xBehave.net,但典型的测试是这样的
公共类计算器功能
{
[场景]
公共空加法(整数x,整数y,计算器,整数答案)
{
“给定数字1”
.给定(()=>x=1);
“还有数字2”
.和(()=>y=2);
“还有一台计算器”
和(()=>计算器=新计算器());
“当我将数字相加时”
.When(()=>answer=calculator.Add(x,y));
“那么答案是3”
然后(()=>Assert.Equal(3,答案));
}
}
此示例取自quickstart部分()。所以你可以用自然语言写下你所有给定的,什么时候,然后或者任何你喜欢的东西。
我个人使用了“建立,何时,它应该”的方法,并在所有方面都使用了\
扩展方法
使用我的方法进行的测试如下所示
public class ListStorySpecifications
{
[Scenario]
public void ListStories(Backlog backlog)
{
IReadOnlyCollection<string> stories = null;
"establish an empty backlog"._(() =>
{
backlog = new Backlog();
});
"when listing all stories"._(() =>
{
stories = backlog.GetAll();
});
"it should return an empty list"._(() =>
stories.Should().BeEmpty());
}
}
公共类ListStory规范
{
[场景]
公开作废清单(积压待办事项)
{
IReadOnlyCollection故事=null;
“建立一个空的待办事项”。((()=>
{
backlog=新的backlog();
});
“列出所有故事时”。(()=>
{
stories=backlog.GetAll();
});
“它应该返回一个空列表”。\u(()=>
故事;
}
}
谢谢!当我写这篇文章时,我仍然在学习这两个方面。我想我真正想要的是一种不使用大小写或下划线的方式来键入测试名称(ListStories
)。我没有把问题写对。看起来这两个框架都使用方法,所以没有办法绕过它。我倾向于编写非常简短的类和方法名称,而xBehave.net忽略了细节。并将细节添加到测试中的字符串中,我认为在这里提供尽可能多的细节是合适的。我没有写任何他们在wiki中称之为“功能介绍”的东西(),我个人认为这不会增加任何价值,也不会分散注意力,最好把时间花在编写好测试上