我的.NET项目使用MOQ .NET模拟库。最近,我计划将其从MOQ迁移到NSubstitute。由于我的代码库有很大的变化,我决定使用正则表达式查找和替换。我的问题是,我有以下代码片段。
this.objectStorageMock.Setup(broker =>
broker.InsertCalendarAsync(someCalendar))
.ThrowsAsync(npgsqlException);
this.objectStorageMock.Setup(broker =>
broker.DeleteBlobAsync(someFilePath))
.ThrowsAsync(httpResponseCriticalException);
我需要把它变成这样
this.objectStorageMock.DeleteBlobAsync(someFilePath).ThrowsAsync(httpResponseCriticalException);
this.objectStorageMock.InsertCalendarAsync(someCalendar).ThrowsAsync(npgsqlException);
所以我用了following正则表达式,
正则表达式模式:
this\.([A-Za-z_][A-Za-z_0-9]*)\.Setup\(broker => broker\.(\w+)\(([^)]*)\)\)\.ThrowsAsync\(([^)]*)\);
替换字符串:
this.$1.$2($3).ThrowsAsync($4);
当原始代码在一行中时,这很好,但它在下面存在多行(因为每个开发人员都以不同的方式格式化代码)。
this.objectStorageMock.Setup(broker =>
broker.InsertCalendarAsync(someCalendar))
.ThrowsAsync(npgsqlException);
this.objectStorageMock.Setup(broker =>
broker.DeleteBlobAsync(someFilePath)).ThrowsAsync(httpResponseCriticalException);
我该怎么处理这个?
1条答案
按热度按时间j1dl9f461#
试试这个正则表达式,我在所有标记之间插入了
[\s\r]*
,它可以匹配Visual Studio中的任何空格字符(包括换行符)。