Używam mockito i próbuję wykpić obiekt scala.Szyderczy obiekt scala
object Sample { }
//test
class SomeTest extends Specification with ScalaTest with Mockito {
"mocking should succeed" in {
val mockedSample = mock[Sample]
}
}
Daje mi to dwa błędy kompilacji.
error: Not found type Sample
error: could not find implicit value for parameter m:
scala.reflect.ClassManifest[<error>]
Po zmianie próbki z obiektu na klasę działa. Czy można symulować obiekty scala za pomocą mockito? Jeśli tak, to w jaki sposób?
Zdecydowanie się zgadzam tutaj. Być może uda ci się spróbować sfingować [Sample.type], ale wątpię, by zadziałało w praktyce. Zaleciłbym, aby Sample rozszerzyć pewną cechę interfejsu i wyśmiać ją w ten sposób. Największym problemem jest to, że jeśli chcesz wstrzyknąć swoją próbkę w miejsce próbki pojedynczej, musisz zrobić fajną, złą, zabawną magię odbijającą. Jeśli jesteś zainteresowany, możemy to opublikować. – jsuereth
Kiedyś patrzyłem na kod źródłowy Mockito, aby odpowiedzieć na pokrewne pytanie (które z jakiegoś powodu nie mogę teraz znaleźć) i wydaje mi się, że widziałem jeden z "symulowanych" generatorów, który po prostu zwraca określoną wartość, a nie próbuje generować naprzemiennie/warianty. –
Czy jest jakiś sposób na zrobienie tego z Powermock lub podobnym? Jeśli mam metodę (skutecznie globalną) na obiekcie towarzyszącym, wydaje się rozsądne, aby chcieć wyśmiać jego zachowanie; z pewnością jest to powszechny wzór w rubinowym świecie. – Korny