Attualmente in una parte del mio progetto un oggetto di dominio come qui di seguito: esisteproprietà di test con setter privati
public class Address
{
public virtual string HouseName { get; set; }
public virtual string HouseNumber { get; set; }
public virtual string RoadName { get; set; }
public virtual string Postcode { get; set; }
public virtual string District { get; private set; }
}
proprietà Il Distretto è una colonna calcolata nel database. A causa dei requisiti del fornitore di accesso ai dati (Entity Framework) è richiesto un set privato. Questo va bene nel flusso normale di programma come mai ha bisogno del Distretto essere impostato, a causa di essa in fase di aggiornamento quando un record di indirizzo viene salvato/aggiornato nel database
Un metodo che voglio prova si presenta così:
public IEnumerable<House> GetHousesWithinSameDistrict (int addressId)
{
var addressToMatch = _addressRepository
.FirstOrDefault(address => address.Id == addressId)
return _houseRepository
.Where(house => house.Address.District == addressToMatch.District)
}
Questo mi crea problemi quando cerco di impostare la variabile addressToMatch, in quanto non riesco a impostare la proprietà District e come tale non posso scrivere un test per verificare che vengano restituiti gli indirizzi corrispondenti corretti.
Come devo impostare la configurazione di un oggetto Indirizzo per questo test?
Forse, 'protetta internal' +' assemblea: InternalsVisibleTo'? –
@ DeblatonJean-Philippe Correlato, ma sicuramente nessun duplicato IMHO. – Jeroen
@ DeblatonJean-Philippe Niente affatto un duplicato di quello. – FLSH