2011-12-14 51 views

回答

8

我在當前的項目中使用它。

我正在使用SpecFlow進行UI測試(Web客戶端)和一些導入測試。

對於單元測試,我使用Machine.Specifications。

我認爲SpecFlow很適合任務。我需要專家,sprint測試人員以及項目經理的書面規範支持,這意味着我可以專注於實現功能,而不是通過繁重的需求規格來閱讀。

從技術上講,我使用CassiniWebDev來承載Web客戶端項目,並使用簡單的Process.Start爲NServiceBus端點使用完整圓的測試。我使用Selenium進行Web UI測試和FluentAutomation。花了幾天時間完成設置,但這絕對是值得的。

我生成SpecFlow報告,使用Pickles將特徵渲染到Web並使用Selenium截取屏幕截圖,並在項目網站上發佈整個事件,以便所有利益相關方能夠看到發生了什麼以及目前的情況。

我推薦SpecFlow BDD/CQRS項目。

+0

感謝Mikael分享,奇怪的事情,我找不到任何適當的例子。他們中的大多數都提到MSpec可能是由於新興的時間。我在一個例子中看到的主要是詳細比較Mark Nijhof的方法,這個方法依然簡潔。我想看看SpecFlow – mobygeek 2011-12-14 14:11:41

4

我已經使用Machine.Spec測試CQRS與BDD。從我的角度來看,它工作得很好。例如:

Establish context =() => 
     { 
      // set up your fakes & mocks here... 
     }; 

    Because of =() => 
     { 
      _bus.Send(_createNewCustomer); 
      _version++; 
     }; 

    It should_create_a_customer =() => 
     { 
      _repository.GetById(_id).Id.ShouldEqual(_id); 
     }; 

    It should_publish_a_customer_Created_event =() => 
     { 
      _subscriber.HandledEvents.Count.ShouldEqual(1); 
      _subscriber.HandledEvents.First().Value.ShouldBeOfType(typeof(CustomerCreatedEvent)); 
     }; 

    Cleanup Clear_Context =() => _subscriber.HandledEvents.Clear();