我想测试我使用 QueueClient 注册的消息处理程序回调queueClient.RegisterMessageHandler(MyCallBack, messageHandlerOptions)。
public Task MyCallBack(Message msg, CancellationToken token)
{
// Read msg. Do something
// Since everything ran fine, complete the msg.
await _client.CompleteAsync(msg.SystemProperties.LockToken);
}
Run Code Online (Sandbox Code Playgroud)
现在作为我的单元测试的一部分,我调用MyCallBack. 因为我传递了一个有效的消息。我期待client.CompleteAsync()被召唤。但是测试会抛出异常。
System.InvalidOperationException: Operation is not valid due to the current state of the object.
Run Code Online (Sandbox Code Playgroud)
这是因为,msg.SystemProperties.LockToken是未设置(这是因为消息没有被实际上从一个队列中与客户端读取ReceiveMode.PeekLock模式)。
有没有办法设置/模拟它,以便我可以使用虚拟字符串作为令牌运行我的测试?
PS:我知道我可以msg.SystemProperties.IsLockTokenSet在实际访问 LockToken 字段之前检查;但即使在那种情况下,如果_client.CompleteAsync()被调用,我也永远无法进行单元测试。
我必须在我的java代码中使用WEKA进行预测.基本上我必须研究给定的代码并重用它.
testdata.setClassIndex(data.numAttributes() - 1);
我无法理解上述内容的含义.什么是班级指数?
testdata并且data是Intances对象.
我有一个使用以下方法的类,并且正在使用Moq作为单元测试框架。如何模拟以下内容:
FeedOptions feedOptions = new FeedOptions
{
MaxItemCount = 1000
};
var query = await _storeAccessClient.CreateDocumentQueryAsync<CustomEntity>(_collectionLink, feedOptions)
.Where(c => c.DataType == _dataType)
.OrderBy(c => c.StartTime, sortOrder)
.AsDocumentQuery()
.ExecuteNextAsync<CustomEntity>();
List<CustomEntity> result = query.ToList<CustomEntity>();
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏 !!
在旧版 SDK (vss-web-extension-sdk)中- 我们可以使用VSS.getWebContext()来获取项目名称和 id。我在较新的 SDK (azure-devops-extensions-sdk)中找不到类似的方法
如何获取带有 new 的项目名称azure-devops-extensions-sdk?