我搜索了該網站和一些文獻,無法得到明確的答案。我正在嘗試學習單元測試,同時構建一個新的網頁,這個網頁只是作爲一個白板,可以添加到它後面。單元測試相關測試
我有一個代表白板的Canvas對象和一個代表post-its的代表對象。我(現在)全局函數來獲取獨一無二的帆布,這是我測試這樣的:
this.testRetrieveCanvas = function()
{
var canvas = getCanvas();
this.assertTrue(canvas != null);
}
this.testCanvasType = function()
{
var canvas = getCanvas();
this.assertTrue(canvas instanceof Canvas);
}
this.testIfCanvasIsReused = function()
{
var canvas = getCanvas();
this.assertEquals(canvas, getCanvas());
}
所以,我測試了三件事情:
- 是否該方法返回一個帆布?
- 它是一個殘酷的畫布嗎?
- 該方法總是給我一樣的畫布嗎?
到目前爲止沒有問題。但過了一會兒,我測試「並稱票到畫布」:
this.testAddTicketToCanvas = function()
{
var ticket = factory.createTicket("yellow");
var canvas = getCanvas();
canvas.addTicket(ticket);
this.assertTrue(canvas.contains(ticket));
};
正如你所看到的,我使用的是getCanvas我的測試()函數中。這是一個依賴性測試嗎?我的意思是,前三個測試必須通過,如果我想這個測試能夠毫無疑問地運行。如果它是依賴的,我將如何解決這個問題?
沒有代碼的其餘部分,我不能幫忙,但你應該看看http://chaijs.com/api/bdd/(chai),http://sinonjs.org/(sinon)或http://gofreerange.com/mocha/docs/(mocha)介紹在JavaScript中進行嘲諷。 –
我不確定你需要額外的代碼來回答我的問題。也許我會換個說法:我是否違反了單元測試規則,通過進行第四次單元測試,取決於前三個? – David
@DavidMaes需要更多信息。你在使用什麼測試框架?即你是否編寫過「assertTrue」方法(如果可以的話你可以包括源代碼?)或者你是否從庫中使用它?你也可以請包括「getCanvas()」的代碼,因爲這也需要回答你的問題。 –