我有一个接口,它有一个方法来创建队列客户端和消息工厂的实例.我已经创建了相同的具体实现,现在我正在尝试单元测试用于将消息发送到队列的功能.我在下面写了相同的代码:
private readonly Mock<IQueueClientProvider> queueClientProvider;
private readonly Mock<IJsonSerializer> jsonSerializer;
private readonly Mock<ILogger<QueueConnector>> logger;
private readonly ModelLogger<QueueConnector> modelLogger;
private readonly QueueConnector queueConnector;
private readonly Mock<QueueClient> queueClient;
public QueueConnectorTests()
{
queueClientProvider = new Mock< IQueueClientProvider >();
queueClient = new Mock< QueueClient >();
logger = new Mock< ILogger< QueueConnector >>();
jsonSerializer = new Mock< IJsonSerializer >();
modelLogger = new ModelLogger<QueueConnector>(logger.Object, jsonSerializer.Object);
queueConnector = new QueueConnector(modelLogger, queueClientProvider.Object);
}
[Fact]
public async void ShouldBeAbleToSendMessage()
{
BrokeredMessage brokeredMessage = new BrokeredMessage();
brokeredMessage.CorrelationId = "0HKVUFCD6Q5JL";
queueClientProvider.Setup(q =>q.CreateQueueClient()).Returns(queueClient.Object); …Run Code Online (Sandbox Code Playgroud) 是否可以在不实现 ITableEntity 或从 TableEntity 继承的情况下创建自定义实体?
如果我正在实施 ITableEntity,那么它会迫使我实施一些我不想实施的其他方法。
如果我从 TableEntity 继承我的自定义实体,那么我需要在将它传递给表操作之前对其进行更新,这会引入无法模拟的直接依赖关系,并且我的控制器类变得不可测试。
我想要做的就是创建我的自定义实体并保存在 Azure 表存储中。
我正在使用azure函数应用,该应用从核心文件夹引用另一个项目,并且该项目包含以下类。
在这种情况下,我尝试读取appsettings.json文件,并且在本地运行良好,但是当将其部署到Azure门户时,找不到该文件,并且builder.Build()方法抛出FileNotFoundException。
public static class ConfigurationSettings
{
public static IConfigurationRoot GetConfigurationRoot()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
return builder.Build();
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我在这里做错了什么,还有其他在Azure功能应用程序中包含文件的问题吗?