我正在學習單元測試,我正在使用Nsubstitute作爲嘲笑框架的選擇。 所以我有這個小虛擬的應用程序,我正在寫一個客棧。我試圖寫 一個測試,以確保一旦預訂是星期五進行,房間價格應該是 打折20%。但我不明白這個Nsubstitute是如何工作的(記住你還在學習),所以我認爲使用when()do()應該幫助我測試我的目標。 有人可以幫我理解Nsubstitute框架的when()do()方法嗎? 我該如何完成這個測試?希望你們都可以幫助!單元測試Nsubstitute
public void DiscountRoomPricesAtWeekends(){
//Arrange
//prices at weekends should be discounted by 20%
//get price of a particular room and discount price
var roomprice = new Rooms() { Price = 100M };
//if day to check in is a friday or saturday its 20% off
var reserve = Substitute.For<Reservation>();
//Make sure that the date of reservation is always friday.
//reserve.ReservationDate.DayOfWeek.Returns(DayOfWeek.Friday);
//(double) roomprice.Price * 0.20)
var percentage = (double) roomprice.Price * 0.20;
reserve.When(r => r.ReservationDate.DayOfWeek.Returns(DayOfWeek.Friday))
.Do(p =>);
//Act
//Assert
//Assert.AreEqual(percentage, 20);
Assert.AreEqual();}
謝謝大家
那麼,無論誰給了-1都不會得到它。當你正在學習一種新的發展方式時,每個人都從某處開始。無論如何,我意識到對於我提到的場景,我必須以不同的方式運行我的測試。我試圖用我的問題來指出的一點是,Nsubstitute的文檔中的例子在某些領域並不是很有見地。但無論如何,下面的答案有助於提供一些啓示,並提醒我所有關於單元測試的理論。歡呼和上帝保佑 – 2015-03-10 02:17:37