设定
我想做什么
针对使用PATCH动词的Web API中的控制器方法运行集成测试
MyController.cs
namespace FluidIT.API.Controllers
{
[Route("api/v1/[controller]")]
[ApiController]
public class MyController : ControllerBase
{
private readonly IMediator _mediator;
private readonly IMyQueries _myQueries;
public JobsController(IMediator mediator, IMyQueries myQueries)
{
_mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
_myQueries = myQueries ?? throw new ArgumentNullException(nameof(myQueries));
}
// PATCH: api/v1/my/{id}
[Route("id:int")]
[HttpPatch]
public async Task<IActionResult> RemoveMeAsync(int id)
{
bool commandResult = false;
try
{
commandResult = await _mediator.Send(new RemoveMeCommand(id));
return NoContent();
} …Run Code Online (Sandbox Code Playgroud) 我正在使用:
我想做什么
集成测试接受表单数据的 API 控制器方法。
设置
[FromForm]属性接受 CommandObjectList<IFormFile>,它旨在管理属于请求的任何文件问题
文件不绑定到List<IFormFile>属性。其他一切都按预期工作,但文件没有。这是我第一次使用 Multipart Form Data,所以不知道该尝试什么。
当我调试测试时,你可以看到除了Documents属性之外的一切都正常(注意,这与下面的代码不 100% 匹配,因为我不得不混淆一些东西)
我看过的东西
有很多与多部分表单数据相关的东西,我尝试过的一些解决方案是:
MyIntegrationTest.cs
我的集成测试设置背后有很多代码。如果我把它都贴在这里,我认为它不会很有帮助。最重要的一条信息是变量server的类型Microsoft.AspNetCore.TestHost.TestServer
[Fact]
async Task Post_ItemAsync_HappyPath_ReturnsOKStatusCode()
{
var fileDir = @"C:/path/to/files";
var fileNames = new string[] { "test.docx", "test.txt" };
using (var server = CreateTestServer())
{ …Run Code Online (Sandbox Code Playgroud) 版本
\n设置
\n我有以下文件夹结构
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 scripts\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\nRun Code Online (Sandbox Code Playgroud)\n主要.tf:
\nlocals {\n python = (substr(pathexpand("~"), 0, 1) == "/") ? "python3" : "python.exe"\n}\n\nresource "null_resource" "custom_objects" {\n for_each = local.custom_objects\n\n triggers = {\n name = each.key\n }\n\n provisioner "local-exec" {\n command = <<-EOT\n python3 -m my_script \'{"key_1": "value_1"}\'\n EOT\n interpreter = [\n local.python\n ]\n working_dir = "${path.module}/scripts"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n./scripts/my_script.py:
\nif __name__ == \'__main__\':\n print(\'my_script executed.\')\nRun Code Online (Sandbox Code Playgroud)\n … 我对Linux操作系统很陌生,所以希望这不是一个愚蠢的问题!
软件:
适用
于Windows的Windows 10 Pro Docker(1.13.0-beta38(9805))
SQL Server Management Studio v17.0 RC1
问题: 我正在尝试使用SSMS连接到我的SQL Server Linux容器.它没有用,所以查看文档似乎需要在SQL Server Linux映像之上安装SQL Server工具(页面底部).
我按照这些说明在Ubuntu上安装SQL Server Tools(SQL Server Linux Image的基本映像)
错误:
bash: curl: command not found
重现错误的步骤:
microsoft/sql-server-linux图像docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linuxdocker exec -it <container_id> /bin/bashcurl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -我尝试过的事情:
apt-get install curl但我得到的只是E: Unable to locate package curl工具类
情境
我正在尝试使用dotnet核心框架创建控制台应用程序。控制台应用程序需要发出API请求。
我已经阅读了有关IHttpClientFactory作为dotnet core 2.1一部分发布的新内容的信息。
该官员documenation表明,所有我需要添加到我的项目是对一个参考Microsoft.Extensions.HttpNuGet包。我已经做到了
问题
我已将添加IHttpClientFactory到类中,但Visual Studio仅选择System.Net.Http名称空间作为建议的参考:
题
我做错了什么:S
设置
地形资源
我创建了一个私有 API 网关,它通过 VPC 链接将流量路由到 NLB。我已经部署了 API,但为了简洁起见,我省略了下面的该资源,因为它很琐碎。
resource "aws_api_gateway_rest_api" "this" {
name = "MyAPI"
body = "${file("./api-spec.yaml")}"
endpoint_configuration {
types = ["PRIVATE"]
}
}
resource "aws_lb" "app" {
name = "MyNLB"
internal = true
load_balancer_type = "network"
subnets = ["MySubnetIds"]
}
resource "aws_api_gateway_vpc_link" "nlb" {
name = "api-gateway-to-nlb"
target_arns = ["${aws_lb.app.arn}"]
}
Run Code Online (Sandbox Code Playgroud)
文件中引用了 VPC 链接api-spec.yaml。相关部分是:
paths:
/items:
get:
summary: Gets a collection of items
responses:
'200':
description: …Run Code Online (Sandbox Code Playgroud) 我试图安装Posh-Git以使用带有Powershell的ssh.
我按照这里的说明操作
此处的文件未经过数字签名,因此我更改了执行策略以进行安装.然后我(无论出于什么原因)决定不使用它,所以我删除了文件.
现在每当我启动Powershell时,我都会收到类似下面的错误:
The term 'C:\xxx\xxx\profile.example.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)
每次启动Powershell时如何阻止此错误消息出现?
我正在使用
GitBash v2.17.0
AWS CLI v1.16.67
视窗 10
问题
我SecureString在 AWS SSM Parameter Store 中创建了一个参数。例如,让我们调用参数
/levelOne/levelTwo
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 AWS CLI 检索参数。为此,我使用以下命令:
aws ssm get-parameters --names '/levelOne/LevelTwo' --with-decryption
Run Code Online (Sandbox Code Playgroud)
问题是返回的结果是这样的:
如您所见,参数以C:/Program Files/Git. 谁能解释一下我做错了什么?
谢谢
c# ×3
asp.net-core ×2
terraform ×2
.net-core ×1
amazon-vpc ×1
aws-cli ×1
aws-ssm ×1
docker ×1
posh-git ×1
powershell ×1
sql-server ×1
ubuntu-16.04 ×1