我一直在研究基于验收的测试,它们看起来很不错,因为它们更自然地适合基于特性的开发。
问题是我不知道如何在代码中布置它们。我想尽量避免引入另一个框架来处理这个问题,所以我只是在寻找一种简单的方法来启动和运行这些测试。
我对代码结构所需的任何更改持开放态度。我还使用规范来建立复杂的验收标准。
我正在尝试做的示例:
public class When_a_get_request_is_created
{
private readonly IHttpRequest _request;
public When_a_get_request_is_created()
{
_request = new HttpRequest();
}
// How to call this?
public void Given_the_method_assigned_is_get()
{
_request = _request.AsGet();
}
// What about this?
public void Given_the_method_assigned_is_not_get()
{
_request = _request.AsPost();
}
// It would be great to test different assumptions.
public void Assuming_default_headers_have_been_added()
{
_request = _request.WithDefaultHeaders();
}
[Fact]
public void It_Should_Satisfy_RequestIsGetSpec()
{
Assert.True(new RequestUsesGetMethodSpec().IsSatisfiedBy(_request));
}
}
我可能在这里完全不合时宜,但基本上我希望能够运行具有不同假设和给定的测试。只要我可以将某人指向测试以验证给定的标准,我不介意是否必须进行更多课程或少量重复。