VIPERやClean Architectureなどでは当然されていますが、UTをするためにはProtocolを用いて各レイヤー間の依存度を下げテストをしやすくする必要があります。 テストしにくい(依存度が高い)コード class BookmarkViewModel { let model = BookmarkModel() var bookmarks = [Bookmark]() // DBからブックマーク一覧を取得 func loadBookmarkList() { bookmarks = model.load() } // DBからi番目のブックマークを削除 func deleteBookmark(at index: Int) { model.delete(at: index) } } このコードではBookmarkViewModelはBookmarkModelに依存しているため、