我正在开发一个 Web API,在某些情况下会以 500 响应(我知道设计丑陋,但对此无能为力)。在测试中有一个包含 AspNetCore.TestHost 的 ApiFixture:
public class ApiFixture
{
public TestServer ApiServer { get; }
public HttpClient HttpClient { get; }
public ApiFixture()
{
var config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var path = Assembly.GetAssembly(typeof(ApiFixture)).Location;
var hostBuilder = new WebHostBuilder()
.UseContentRoot(Path.GetDirectoryName(path))
.UseConfiguration(config)
.UseStartup<Startup>();
ApiServer = new TestServer(hostBuilder);
HttpClient = ApiServer.CreateClient();
}
}
Run Code Online (Sandbox Code Playgroud)
当我从这个装置中使用 HttpClient 调用 API 端点时,它应该响应 500,而不是我收到在测试控制器中引发的异常。我知道在测试中它可能是一个不错的功能,但我不想要那个 - 我想测试控制器的实际行为,它返回内部服务器错误。有没有办法重新配置 TestServer 以返回响应?
控制器动作中的代码无关紧要,可以是 throw new Exception();
我有一个动作,我想只限制角色"Admin".我是这样做的:
[Authorize(Roles = "Admin")]
public ActionResult Edit(int id)
Run Code Online (Sandbox Code Playgroud)
手动进入Controller/Edit/1路径后,我被重定向到登录页面.嗯,这也许不错,但我想显示404而不是它,并尝试坚持使用属性.那可能吗?
我正在寻找为JS提供单元测试的框架.后来,我将不得不将它与CruiseControl.NET集成.我有很多使用JS的asp网站,我需要自动化测试.例如,我使用本地JSUnit(可能是其他框架),这对我来说很容易,但我不知道如何将它与CC.NET集成.也许你可以告诉我如何开始?
注意:它必须是CC.NET,未指定单元测试的框架
我需要显示整数平均计算结果的前 100 位有意义的数字。系列整数存储在 mpz_t 类型的数组中,然后将其求和到 mpq_t 并除以另一个 mpq_t(计数)
代码:
mpq_t sum;
mpq_init(sum);
//same for variable count, they are filled from mpz_t
//display for check
gmp_printf("%.Qd\n", sum); <- here everything correct
gmp_printf("%.Qd\n", count); <- here also
mpq_div(sum, sum, count);
//to display with floating point
mpf_t avg;
mpf_init(avg);
mpf_set_q(avg, sum);
gmp_printf("%.100Ff\n", avg);
Run Code Online (Sandbox Code Playgroud)
最后一行的显示,假设 sum = 2, count = 3 是错误的。它在大约 10-15 位数字后上限并用 0 填充。对于 (2/3),它是 0.66666666670000...
所以有两件事:
因此对于 (2/3) 期望的输出是:
0.666...666(一百个6,末尾也有6)
我是mvc的新手,因为我正在设计一些类似博客的网络应用程序,我想知道一件更有经验的事情.问题是我有一个博客文章的视图和用于为其键入注释的框.完美的,抽象的解决方案是用一类文章和评论强烈地键入这个视图,但正如我们所知,这是不可能的.处理这种情况的最佳方法是什么?因为它是文章的视图,所以应该用文章类输入.另一方面 - 使用注释类键入它并使用ViewBag传递文章字段会更容易.我不认为它是正确的,因为它不应该用类输入,这里没有直接表示(文章是主要的).
有哪些其他可能的解决方案可以轻松添加和验证注释并以明确的方式执行此操作?提前致谢.
编辑:主要的"问题"不是处理现有注释的列表,而是添加新注释 - 在这种情况下我可以在控制器端轻松使用ViewModel FormCollection吗?