小编Dav*_*nez的帖子

是否有必要模拟单元测试中的所有依赖项?

我正在尝试为 ASP.NET 创建一个单元测试,该测试具有以下构造函数定义(在运行实际应用程序时填充 Ninject):

    public OrderController(IViewModelFactory modelFactory, INewsRepository repository, ILoggedUserHelper loggedUserHelper,
        IDelegateHelper delegateHelper, ICustomerContextWrapper customerContext) {
        this.factory = modelFactory;
        this.loggedUserHelper = loggedUserHelper;
        this.delegateHelper = delegateHelper;
        this.customerContext = customerContext;
    }
Run Code Online (Sandbox Code Playgroud)

我想测试OrderController类中的方法,但为了隔离它,我必须模拟所有这些依赖项,这变得非常荒谬(可能还必须模拟子依赖项)。

在这种情况下,对此类进行单元测试的最佳实践是什么?

.net c# unit-testing mocking

3
推荐指数
1
解决办法
1833
查看次数

自动混合AutoData错误 - 未提供任何参数

我试图通过以下方式在AutoFixture中使用AutoData功能进行NUnit测试:

[Test]
[AutoData]
public void PharmaciesAndDelegatesShouldBeLinkedEachOther(string s) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我在运行测试时收到以下错误.只要我没有传递该参数,测试中的其他所有内容都能正常工作:

结果消息:未提供任何参数.

我究竟做错了什么?

.net nunit moq autofixture

3
推荐指数
1
解决办法
1488
查看次数

F# - 如何通过降序然后升序对列表进行排序?

我有以下简短的代码,只是计算文本的单词:

[<EntryPoint>]  
let main argv =   
    let text = File.ReadAllText("gettysburg.txt").ToLower()  
    Regex.Split(text, "\W+")  
    |> Seq.groupBy id  
    |> Seq.map (fun (k, grp) -> (k, grp |> Seq.length))  
    |> Seq.sortByDescending (fun (w, ln) -> (ln, w))  
    |> Seq.iter (fun (k, ln) -> printfn "%s\t%i" k ln)  
Run Code Online (Sandbox Code Playgroud)

sort函数首先按出现次数排序,然后按字母顺序排序,均为降序排序.我需要按出现次数递减,然后按字母顺序递增.

使用OrderByDescendingThenBy, LINQ非常简单.如何在不重复使用LINQ的情况下在F#中实现相同的结果?

谢谢.

sorting f#

3
推荐指数
1
解决办法
928
查看次数

如何在C#中表达函子?

我正在将应用程序从C ++转换为.NET / C#。但是,我在如何用C#表达C ++函子上苦苦挣扎。

将以下表达式转换为C#的最佳方法是什么?

struct AircraftMover
{
    AircraftMover(float vx, float vy)
    : velocity(vx, vy)
    {
    }

    void operator() (Aircraft& aircraft, sf::Time) const
    {
        aircraft.accelerate(velocity);
    }

    sf::Vector2f velocity;
};
Run Code Online (Sandbox Code Playgroud)

c# c++ functor code-translation

1
推荐指数
1
解决办法
1933
查看次数

尝试使用HttpClient上传文件时,Web Api的RequestEntityTooLarge响应

我正在尝试使用Asp.Net Web Api创建一个通过Post上传文件的Web服务.这些分别是Client和Web Api的实现:

客户:

using (var client = new HttpClient()) {
    client.BaseAddress = new Uri("https://127.0.0.1:44444/");
    using (var content =
       new MultipartFormDataContent("Upload----" + DateTime.Now.ToString(CultureInfo.InvariantCulture))) {
       content.Add(new ByteArrayContent(File.ReadAllBytes(filepath)));
       content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
       var response = await client.PostAsync("api/Synchronization", content);

       if (response.IsSuccessStatusCode)
           eventLog1.WriteEntry("Synchronization has been successful", EventLogEntryType.Information);
       else 
           eventLog1.WriteEntry(response.StatusCode + ":" + response.ReasonPhrase, EventLogEntryType.Error);

      }
}
Run Code Online (Sandbox Code Playgroud)

服务器:

public class SynchronizationController : ApiController {

    public HttpResponseMessage SynchronizeCsv() {
        var task = this.Request.Content.ReadAsStreamAsync();
        task.Wait();
        Stream requestStream = task.Result;

        try {
            Stream fileStream = File.Create(HttpContext.Current.Server.MapPath(path));
            requestStream.CopyTo(fileStream); …
Run Code Online (Sandbox Code Playgroud)

c# httpclient http-status-code-404 asp.net-web-api

1
推荐指数
1
解决办法
6630
查看次数

使用 Kafka 和每个实体类型的主题进行事件溯源,外键会发生什么情况?

我正在尝试使用 Kafka 设计一个事件源系统。假设我们有一个非常简单的事件源应用程序,由四个聚合根组成:用户、类别、产品和购买。

遵循confluence的一些指导,我创建了 4 个主题(为简单起见,我们假设每个主题 1 个分区),每个聚合一个:

  • 为用户提供一个主题
  • 类别的一个主题
  • 产品的一个主题
  • 购买的一个主题

我的投影是 PostgresSQL 投影,它从 Kafka 读取事件,然后将每个事件转换为 SQL 查询(根据事件类型插入、更新或删除)。

问题是数据库模型大约是这样的:

在此输入图像描述

鉴于主题之间的事件顺序无法保证,如果我尝试将产品添加到没有其类别的数据库中,我很可能会收到来自数据库的foreignkey错误。同样,如果我尝试在用户或产品尚未处理的情况下添加购买,我很可能会收到另一个外键错误。

我必须使用哪些分区选项来解决读取模型中的外键问题,并允许我的系统随着更多实体和更多事件而增长,而不必依赖将所有内容放入单个主题来避免外键问题?

我想到的一件事是,虽然我可以独立处理用户和产品而不会发生冲突,但我仍然需要对购买做一些事情(以某种方式延迟该主题的事件处理,直到确保用户和产品存在于数据库)。

domain-driven-design event-sourcing apache-kafka

1
推荐指数
1
解决办法
566
查看次数