日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Spartacus 单元测试开发规范

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Spartacus 单元测试开发规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

官網

  • 所有代碼都必須被單元測試覆蓋。
  • 每次測試測試一件事(在一個 it 里實現)。
  • 單元測試將被測試的代碼與其依賴項隔離:模擬所有的依賴項。
  • 單元測試需要相互獨立:我們應該能夠以任何順序從文件運行測試,并且不會改變結果。
  • 在適用時涵蓋快樂路徑、錯誤、邊緣情況和 UI。

UI Components

Mock Everything

與任何其他代碼段一樣,我們希望單獨測試 UI 組件。 我們不希望測試結果受到我們正在測試的類之外的代碼的影響。

雖然模擬服務之類的依賴關系更為明顯,但很容易忘記模擬從測試組件的模板中調用的子組件。

要模擬子組件,您可以在規范文件中創建它的假副本。 偽造組件必須與您要偽造的子組件具有相同的選擇器:

例子:

@Component({template: '',selector: 'cx-some-component' }) class MockSomeComponent {@Input() someparam; }

Then, you declare it in the TestBed:

TestBed.configureTestingModule({imports: [...],declarations: [MockSomeComponent],providers: [...], }).compileComponents();

NGRX and Tests That Use the Store

事實證明,模擬 NGRX 商店是一項相當大的挑戰。 NGRX 存儲是我們單元測試中模擬依賴項規則的例外。

要對從 store 讀取的一段代碼執行單元測試,請通過使用數據顯式調用相關成功操作來填充 store 以設置測試。

這是我們調度 LoadUserAddressesSuccess 來設置測試數據的示例:

it('should be able to get user addresses', () => {const mockUserAddresses: Address[] = [{ id: 'address1' }, { id: 'address2' }];store.dispatch(new UserActions.LoadUserAddressesSuccess(mockUserAddresses));let addresses: Address[];service.getAddresses().subscribe(data => {addresses = data;}).unsubscribe();expect(addresses).toEqual([{ id: 'address1' }, { id: 'address2' }]); });

Avoiding Silently Failing Tests

最好的做法是刪除訂閱之外的斷言。 這樣,我們確保在測試完成之前執行斷言。 為了斷言 observable 的結果,我們在訂閱中分配結果,但斷言是在訂閱之外用值完成的。

下列做法不推薦:

service.getAddresses().subscribe(addresses => {expect(addresses).toEqual([{ id: 'address1' }, { id: 'address2' }]);}).unsubscribe();});

下列才是推薦的做法:

let addresses: Address[];service.getAddresses().subscribe(data => {addresses = data;}).unsubscribe();expect(addresses).toEqual([{ id: 'address1' }, { id: 'address2' }]);});

總結

以上是生活随笔為你收集整理的SAP Spartacus 单元测试开发规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。