Kezdőoldal » Számítástechnika » Egyéb kérdések » Lehetséges ez C#-ban? Ha...

Lehetséges ez C#-ban? Ha igen, akkor hogyan?

Figyelt kérdés

Van két osztály, aminek két ugyanolyan szignatúrájú metódusa van, de nincs közös interfaceük. (nem készíthető közös interface, nem tudok beleszólni ezen osztályok forráskódjába).

Például:

Class1-nek van MetodusVagyok()

Class2-nek szintén MetodusVagyok()


Van egy saját osztályom, mely használja ezt a két metódust, ezt szeretném unit tesztelni. Kérdés, hogy tudom-e valahogy dinamikusan átadni ezeket a típusokat TestCase-ben és később mockoláshoz felhasználni. Generikusokkal is akár. Eddig amivel próbálkoztam és nem nagyon megy:


[Test]

[TestCase(typeof(Class1))]

[TestCase(typeof(Class2))]

public void TestMethod(Type type){

var mocked = new Mock<typeof(type)>();

mocked.SetUp(x => x.MetodusVagyok().....


Valószínűleg béna vagyok generikusokkal vagy a Type-al és nem tudom őket rendesen használni. Generikusokkal még szebb lenne. Kérdésem, hogy ez lehetséges-e és ha igen, akkor hogyan lehetne megoldani?


2021. júl. 16. 16:22
 1/1 anonim ***** válasza:

Bár nem vagyok otthon már OOP-ben (régen használtam, most beágy-rendszer C-ben amit használok), én így oldanám meg (még ha nem is szép megoldás):

-Megjegyzem, hogy ne kössetek bele, hogy rémes-e, most csak egy ötletet mondok, aminek működnie kell, a szebb megoldásokat kommentelhetitek bátran :)

Szóval, remélem public class-ok, különben nem működik az ötletem :(

Létrehoznék egy MyClass1 osztályt, ami leszármazik a Class1-ből (konstruktorban szimplán ősnek a konstruktora), ugyanígy Class2-nek MyClass2-t.

Na most ezek csak csomagolónak működnének, mert azt mondtad, enm férsz hozzá, zárt library. Ezek a MyX osztályok pedig megvalósítanának egy interfészt, amiben megadod a függvényt.

Ezt az interfészt már tudod listában vagy akármiben tárolni, kezelni, és így meg tudnád hívni ugyanazt a függvényt bármelyikre.

És ha minden igaz, a fordító/interpreter (nem tudom már jelenleg hogy működik a .NET) észlelni fogja, hogy amúgy is van az ősosztálynak ilyen függvénye, ezáltal nem is kell újradefiniálnod, hanem az ősosztályé fog működni.


-Persze nyitott vagyok a kritikákra, ha hülyeséget mondtam :)

2021. júl. 16. 17:34
Hasznos számodra ez a válasz?

További kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!