1

moqフレームワークを使用して、ドメイン駆動設計アーキテクチャでリポジトリ層の単体テストを作成する方法は? 私のリポジトリクラスは次のとおりです。

public class ContactRepository : Repository<Contact, int, ContactsDb>, IContactRepository
{
    public ContactRepository(IUnitOfWork unitOfWork, IObjectContextFactory objectContextFactory)
        : base(unitOfWork, objectContextFactory) { }

    public IEnumerable<Contact> FindAll()
    {
        var predicate = PredicateBuilder.True<ContactsDb>();

        //IEnumerable<ContactsDb> contacts = findContactsSummary(predicate);
        IEnumerable<ContactsDb> contacts = ObjectContextFactory.Create().Contacts
            .Include(c => c.Addresses).Include(c => c.Communication).Include(c => c.ContactEmails)
            .Include(c => c.ContactPhones).Include(c => c.Image).Where(c => !c.IsDeleted);
        foreach (ContactsDb dc in contacts)
        {
            if (dc.ContactType == ContactType.Person)
                yield return Mapper.Map<ContactsDb, Person>(dc);
            else
                yield return Mapper.Map<ContactsDb, Company>(dc);
        }
    }

このリポジトリ クラスでは、どれが嘲笑されますか? これについていくつか例を挙げてください。

4

1 に答える 1

0

リポジトリ クラスでは、基本的にデータベースにアクセスし、クエリの結果をドメイン エンティティにマップします。基本的に、あなたはあなたのものではないコードを使用しています。そして、自分のものではないものを嘲笑する必要はありません。Uncle Bob の説明はこちらでご覧いただけます

したがって、これらのケースで私が行うことは、実際のデータベースに対してリポジトリをテストすることです。

于 2014-08-13T14:52:24.053 に答える