【问题标题】:Create "fake" user in my ASPNETUsers Table在我的 ASPNETUsers 表中创建“假”用户
【发布时间】:2017-02-02 11:04:20
【问题描述】:

我正在运行一些集成测试,我希望在我的 ASPNETUsers 表中创建一个“假”用户。

我正在尝试执行以下操作,但没有运气。

所以我的设置如下:-

[SetUp]
public void Setup()
{
    var basePath = PlatformServices.Default.Application.ApplicationBasePath;
    var projectPath = Path.GetFullPath(Path.Combine(basePath, "../../../../SportsStore2.Tests"));

    var server = new TestServer(Utils.GetHostBuilder(new string[] { })
        .UseContentRoot(projectPath)
        .UseEnvironment("Development")
        .UseStartup<Startup>());

    _client = server.CreateClient();
}

然后插入如下:-

var registerViewModel = new RegisterViewModel
{
    Email = "test@test.com",
    ConfirmPassword = "testing12345?",
    Password = "testing12345?"
};
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var postResponseASPNETUser = await _client.PostAsJsonAsync("http://localhost:49406/Account/Register", registerViewModel);
var createdASPNETUser = await postResponseASPNETUser.Content.ReadAsStringAsync();

但是我收到 400 响应,错误请求。

任何想法我做错了什么?

感谢您的帮助和时间。

【问题讨论】:

  • 响应不包含错误请求之外的更多详细信息吗?
  • 这就是我得到的:-- RequestMessage {方法:POST,RequestUri:'localhost:49406/Account/Register',版本:1.1,内容:System.Net.Http.ObjectContent`1[SportsStore2. API.Models.AccountViewModels.RegisterViewModel],标题:{ 接受:application/json 主机:localhost:49406 内容类型:application/json; charset=utf-8 }} System.Net.Http.HttpRequestMessage
  • 没有什么突出的

标签: c# asp.net asp.net-mvc asp.net-core integration-testing


【解决方案1】:

我没有直接调用 api,因为我运气不好也找不到它没有返回正确响应的原因,所以我决定走另一条路,基本上在我的 UsersController 中创建了另一个 Create Action,如下所示:-

    [HttpPost("Create")]
    public IActionResult Create([FromBody] User user)
    {
        if (user == null)
            return BadRequest();

        var result = _usersService.Add(user, m => m.Name == user.Name);
        if (result)
        {
            return CreatedAtRoute("GetUsers", new { id = user.Id }, user);

        }
        return BadRequest("Item not added");
    }

    [HttpPost("CreateAspNetUsers")]
    public IActionResult CreateAspNetUsers([FromBody] RegisterViewModel registerViewModel)
    {
        if (registerViewModel == null)
            return BadRequest();

        var result = _aspNetUsersService.Add(registerViewModel, m => m.Name == registerViewModel.Email);
        if (result)
        {
            return CreatedAtRoute("GetUsers", registerViewModel);
        }
        return BadRequest("Item not added");
    }

这很好用,给了我想要的结果。

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2022-01-01
    相关资源
    最近更新 更多