相关疑难解决方法(0)

什么时候应该嘲笑?

我有模仿和假冒对象的一个基本的了解,但我不知道我有一个关于何时/何用嘲弄的感觉-特别是因为它也适用于这种情况在这里.

language-agnostic unit-testing mocking

122
推荐指数
4
解决办法
4万
查看次数

如何在 aws-sdk-net DynamoDb 中模拟 BatchWrite 对象

I\xe2\x80\x99m 尝试在 C# 中编写单元测试,我需要CreateBatchWrite<T>使用 Moq 模拟该方法的响应,但我可以\xe2\x80\x99t 实例化该BatchWrite<T>对象的对象。\nI\xe2\x80\ x99m 这样做:

\n\n
this.dynamoDbMock\n    .Setup(m => m.CreateBatchWrite<SomeType>(It.IsAny<DynamoDBOperationConfig>()))\n    .Returns(Mock.Of<BatchWrite<SomeType>>());\n
Run Code Online (Sandbox Code Playgroud)\n\n

知道如何模拟这个对象。\n谢谢!

\n

c# unit-testing moq aws-sdk-net

6
推荐指数
0
解决办法
1299
查看次数

涉及 Microsoft.Azure.ServiceBus.Core.MessageReceiver 时如何进行单元测试

我正在尝试对与 MessageReceiver 类具有依赖关系的 Azure 函数进行单元测试。类定义如下:

public class MessageReceiver : ClientEntity, IMessageReceiver, IReceiverClient, IClientEntity
Run Code Online (Sandbox Code Playgroud)

我需要moq的方法属于接口IMessageReceiver

我尝试模拟 MessageReceiver 类,并设置 CompleteAsync 方法,但出现错误:

Non-overridable members (here: MessageReceiver.CompleteAsync) may not be used in setup / verification expressions.
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着非虚拟、抽象或重写的方法不能被重写/最小起订量。我尝试手动创建一个子类并使用定义中的新关键工作声明一个方法 CompleteAsync,

public new Task CompleteAsync(string lockToken)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,代码会在调用 CompleteAsync 方法时引发错误:

Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Run Code Online (Sandbox Code Playgroud)

但我认为它不起作用,因为我尝试按 F11 进入该方法,但我的方法没有被调用...有什么想法或建议吗?

c# unit-testing azure-functions

3
推荐指数
2
解决办法
4639
查看次数