Closed11

Angularのライブラリを自作するぞい!作業メモ

ng new <project_name>
で指定した名前をつかって
ng generate library <library_name>
したらおこられたぞい!
project_nameとlibrary_name一緒にすると怒られる。

Project name already exists.

初回ライブラリビルドから同一project内projectで動かすまで

ng build <library-name>

でビルドする。

でAppModuleでimportする。

import { LibraryNameModule } from '<library-name>';
// ...
  imports: [
    BrowserModule,
    LibraryNameModule
  ],
// ...
export class AppModule { }

でそのあとserveすればライブラリ取り込んで動かせる。

テストの書き方メモ

describe('TestSuite', () => { // desicribeでTestSuiteを表現
  it('should be hoge', ()=> { // it('テストが何チェックしているのかの説明'
    // テストケースを書く
  })
});

compositeパターン

  • 透過性を優先する
  • 安全性を優先する

どっちにするか迷ったけど、透過性にした。
最初安全性優先で実装したんだけど、透過性優先の実装の方が疎結合になるからそうする。

安全性優先で実装 -> newしてる部分をメソッドで隠すようにした -> 透過性の実装のほうがもっと疎結合になると気づいたから変更

例外投げるケースのテストの書き方

NG

expect(throwErrorFunc()).toThrowError('hoge');

OK

expect(() => throwErrorFunc()).toThrowError('hoge');

テスト逆に書いてた。actual -> expected の順が正

expect(actual).toEqual(expected)

MITライセンスがゆるそうでよさげ

natlifyでライブラリをビルドしてからデモprojectをビルドする。

ng build <library_name> && ng build
このスクラップは14日前にクローズされました
作成者以外のコメントは許可されていません