我一直在研究基於驗收的測試,他們看起來相當不錯,因爲他們更適合基於特徵的開發。如何寫出基於驗收的測試(從代碼角度來看)
問題是我不知道如何將它們放在代碼中。我想盡量避免在另一個框架中處理這個問題,所以我只是尋找一種簡單的方法來啓動和運行這些測試。
我接受任何代碼結構所需的更改。我也在使用規格來建立複雜的驗收標準。
樣品的什麼,我試圖做的:
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));
}
}
我可能是完全沒譜在這裏,但基本上,我想能夠運行不同的假設和吉文斯的測試。只要我能指出某人蔘加測試來驗證給定的標準,我不介意是否必須進行更多課程或輕微複製。
這看起來更像是功能測試而不是驗收測試(因爲您正在模擬其他代碼使用您的代碼而不是人類使用您的程序)。它是否正確?請參閱[這個問題](http://en.wikipedia.org/wiki/Aspect-oriented_programming),以便比較各個方面。如果是這樣,您可以使用幾種方法,包括[面向方面](http://en.wikipedia.org/wiki/Aspect-oriented_programming)方法。然而,在接受測試方面,我不是專家,也不會因錯誤地回答您的問題而混淆水域。 –
老實說,我不確定。這個想法是,開發者給了我一個http客戶端的故事,並基於這個故事,我需要根據我們對於期望的討論來完成一些標準。這最終的結果是他得到了他想要的,並且我編碼了期望。我們試圖找到一種方法來開發和測試所需的東西,不多不少。 – deanvmc
PS你的鏈接都轉到同一篇文章。 – deanvmc