मैं निम्नलिखित Subscriber
सार आधार वर्ग है:मैं अक्का क्लस्टर में सब्सक्राइबर की प्राप्त विधि का परीक्षण कैसे कर सकता हूं?
abstract class Subscriber(topics: Seq[String]) extends Actor with ActorLogging {
import DistributedPubSubMediator.{ Subscribe, SubscribeAck }
val mediator = DistributedPubSub(context.system).mediator
// subscribe to each topic
topics.foreach{mediator ! Subscribe(_, self)}
def receive = {
case SubscribeAck(Subscribe(name, None, `self`)) ⇒
log.info(s"Subscribing to $name")
}
}
और मैं परीक्षण करने के लिए है कि यह संदेश जो जो करने के लिए एक उपवर्ग सदस्यता लिया है विषयों के लिए प्रकाशित कर रहे हैं प्राप्त करता है चाहते हैं।
val topic = "foo"
class FooSubscriber extends Subscriber(Seq(topic))
val fooSubActor = system.actorOf(Props[FooSubscriber])
val mediator = DistributedPubSub(system).mediator
val msg = "This is a string"
// Publish the msg to the "foo" topic.
mediator ! Publish(topic, msg)
fooSubActor.expectMsg(msg)
एक ही रास्ता मैं संदेशों विशिष्ट अभिनेताओं प्राप्त होने वाले TestProbe
के माध्यम से है के बारे में दावे बनाने के लिए पता है, लेकिन मैं नहीं जानता कि मैं कैसे एक TestProbe
का विस्तार कर सकता है: कुछ सरल स्यूडोकोड कि कि यह दर्शाता है निम्नलिखित है मेरी कक्षा।
आम तौर पर अक्का docs में संबंधित परीक्षण सूट के साथ नमूना कोड का भार होता है, लेकिन मुझे receive
विधि का परीक्षण करने से संबंधित अक्का क्लस्टर दस्तावेज़ों में कुछ भी नहीं मिला।
क्या किसी के पास सुझाव हैं?
एक क्लज 'प्राप्त' को ओवरराइड करना है और जब सदस्य को कुछ भी प्राप्त होता है और एक दावा करता है कि सदस्य चर मेरे परीक्षण में सेट है ... लेकिन यह बुरा है। एक और बेवकूफ परीक्षण दृष्टिकोण की तलाश में। – erip