2015-01-13 62 views
1

我目前有一個應用程序,它使用SignalR獲取數據並使用Knockout綁定到DOM。該應用程序已經增長並且Knockout變得非常複雜和臃腫,所以我將切換到AngularJS進行前端綁定。使用SignalR與AngularJS,如何編寫單元測試

但是,我遵循的Angular教程似乎都使用$ http GET從服務器獲取數據。我真的很喜歡使用SignalR來獲取數據,因爲我可以僅從服務器端代碼返回純對象或列表或字典,並將其傳遞給客戶端,而無需進行串化或反序列化。

實現SignalR客戶端方法可能很簡單,但是如何編寫單元測試來測試需要SignalR集線器連接的Angular控制器方法?

+0

你描述的事情很常見,一個應用程序開始,隨着時間的推移而增長,內置的技術債務開始拖累。這是重構進來的地方,在你的情況下徹底切換到角度。一旦一個人有足夠的重構,他們就開始學習「分離關注點」。我發現任何時候任何方法或函數都有超過10行的代碼,它可能會試圖做太多。每種方法或功能只應該做一件事。另外請記住,遏制遠遠優於大型長期繼承鏈。 –

回答

0

它不是剔除你的應用程序是複雜和臃腫的錯誤,你也可以與Angular一起,只是說。另外與SignalR沒有區別,也需要反序列化JSON。我看不出理由使用SignalR,如果你無法從服務器推送狀態的客戶,考慮的WebAPI

懲戒外部調用是一個動態的語

只是做(僞代碼)

很容易
foo.functionname = function(params) { 
    assert(1, params, "It should call server with params = 1"); 
} 
+0

但是對於SignalR,我不必序列化和反序列化我的對象,我只是返回Hub類中的對象,並將其傳遞給我的客戶端方法。標準的GET請求並非如此。 – RamblerToning

+2

你可以使用jQuery或其他庫來做同樣的事情,如果你只是想要這個功能,沒有理由使用SignalR。 SignalR是一個將消息從服​​務器直接推送到客戶端的發佈/訂閱框架 – Anders

相關問題