Vra

Ek spring in eenheid-toets van die Visual-Studio 2008 manier, en ek wonder wat is die beste manier om kruis-vergadering class toegang vir toetsdoeleindes bereik.

Eintlik, ek het twee projekte in een oplossing:

  1. MyProject (C #)
  2. MyProjectTests (C # Toets Projek)

Alles in MyProject het tans verstek toeganklikheid, wat korrek as ek reg onthou, beteken alles is effektief internal. Ek is meestal op soek na toets teen die class vlak, maar daar is 'n paar delegates betrokke.

Daar sal waarskynlik 'n eksterne API wees iewers in die toekoms, maar ek is sowat 20% van die manier om funksievolledige (ten minste op papier) en ek raak redelik handig van gelaagdheid meer kode op die top van hierdie ongetoets kern. Gevolglik wil ek graag 'n paar toets nou gedoen het, voordat die app is volledige genoeg vir tradisionele (lees: sleg en / of lui). Funksionele toetsing en beslis voor die weergawe N + 1 eksterne API is up

In bykomend tot 'n reguit antwoord, 'n voorbeeld van die oplossing sal waardeer word.

Ander wenke

Jy moet voeg

[assembly:InternalsVisibleTo("Unit.Tests.Assembly")] 

om AssemblyInfo.cs van jou "MyProject (C #)". Wat dit moontlik maak dan jou toetse om toegang te verkry tot die interne metodes vir die toets.

Dit lyk of jy moet die InternalsVisibleToAttribute

Maar ek wil aanbeveel teen hierdie benadering -. Toets jou interne klasse via die openbare koppelvlak of API

Ek het gevind dat hierdie een https://msdn.microsoft.com/en -us / library / hh598957.aspx Hoop dit kan help om iemand.

Opsomming:

  • In jou eenheid toets projek, voeg 'n verwysing na die kode onder toets. Hier is hoe om die verwysing na 'n kode projek in dieselfde oplossing te skep:
  • Kies die projek in Oplossing Explorer.
  • Op die spyskaart Projek, kies Voeg Reference ....
  • In die dialoog Reference Manager boks, maak die Oplossing knoop en kies Projekte.
  • Gaan die naam kode projek en sluit die dialoog.
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top