我有一大堆用MbUnit编写的单元测试,我想用测试名称生成简单的英语句子。这个概念在这里介绍:
http://dannorth.net/introducing-bdd
这是来自文章:
public class CustomerLookupTest extends TestCase {
testFindsCustomerById() {
...
}
testFailsForDuplicateCustomers() {
...
}
...
}
呈现如下内容:
CustomerLookup - finds customer by id - fails for duplicate customers - ...
不幸的是,上面文章(testdox)中引用的工具是基于Java的。 .NET有一个吗?
这听起来很简单,但我只是没有带宽而想要使用已写的东西。
编辑:只是为了澄清这个问题。我正在寻找可以通过现有测试并将CamelCase函数名称转换为句子的东西。对于某种Gallio插件来说,这似乎是一个完美的工作。
到目前为止,我以某种方式找到了SpecUnit,Jay已经提出了BDDDoc。这两个都是行为验证框架,需要对exisitng测试进行重大改写。我们的团队决定将SpecFlow作为主要的BDD框架,我想要实现的是生成现有测试的报告,以了解它是否适合BDD方法。
答案 0 :(得分:3)
有一个TestDox for .NET 这似乎是最近的(2010年)。
答案 1 :(得分:2)
去年的演示文稿中,我创建了一个小型BDD单元测试助手,显示正常英语执行的方法名称。它的字符串神奇部分非常薄,所以你可以从中提取它。
这是我的帖子,其中包含下载链接:http://gasparnagy.blogspot.com/2009/10/devcamp09-behavior-driven-development.html
答案 2 :(得分:1)
查看由JP Boodhoo开发的developwithpassion.bdd
和bdddoc
。
他的原始博文就在这里:http://blog.jpboodhoo.com/BDDDoc.aspx
您可以在此处找到github上的代码:http://github.com/developwithpassion/developwithpassion.bdd
我使用他的测试框架,BDDDoc通过绑定到mbUnit和Gallio报告,生成简单的英文HTML报告,甚至可以显示测试是否通过。
格式是,每个灯具都有一个Concern
属性,用于bdddoc拾取和分组规格。
我的灯具的名称与public class When_the_sound_system_is_off...
类似,我的断言是it
类型的代表(来自框架),所以他们阅读it should_not_be_spinning_a_compact_disc...
,it should_emit_no_sound...
等。
BDDDoc可以解决这种低调的语法,但我认为既然你已经在使用mbUnit,你可以提取有趣的代码并根据你的需要进行定制。
答案 3 :(得分:0)
StoryQ为converting existing unit tests to BDD style提供了相当好的工作流程 - 我知道这不是直接回答你的问题,但可能值得一试......
答案 4 :(得分:0)
这个C#测试框架在将方法转换为英语方面也做得很好
UBADDAS - 用户行为和领域驱动的接受故事
在此处找到 - http://kernowcode.github.io/UBADDAS/
转换此...
[Test]
public void IWantToRegisterANewUser()
{
ICustomer customer = new Customer();
SoThat(MyBusinessValue.IncreaseCustomerBase)
.As(new User())
.Given(customer.Register)
.When(customer.Confirm_Registration)
.Then(customer.Login);
}
到此......
I want to register a new user
So that Increase customer base
As user
Given Register customer
When Confirm customer registration
Then Login customer