以下は私のテストです:
[TestMethod]
public void GetSubscribers()
{
stubSubscriptionMng.GetModelSubscribersInt32String = (mgr, i) => new List<IModel>() { modelStub };
var dispatcher = UnitySingleton.Instance.UnityContainer.Resolve<Dispatcher>();
IDispatchingMessage message = new DispatchingMessage(Guid.NewGuid().ToString(), "MessageName", "MessageVal", 1);
dispatcher.Publish(message);
}
これはテストされている方法です:
if (message.UniverseId > 0 && !string.IsNullOrEmpty(message.EntityId) && !string.IsNullOrWhiteSpace(message.MessageName))
{
//the modelMgr will forword the the relevant Data to the relevant Models
IList<IModel> models = subscriptionService.GetModelSubscribers(message.UniverseId, message.MessageName);
Parallel.ForEach(models, (model) =>
{
try
{
model.Update(message);
}
catch (Exception ex)
{
ResourceManager.Instance.Logger.LogException(ex);
}
});
}
各モデルはvoid Update()
メソッドで呼び出されています。この動作を確認する方法はありますか?メソッドが呼び出されたことを確認するには?RhinoモックExpect()
と同等のverifyAllExpectations()
何か?
次の投稿で回避策を見つけました。