我是XUnit和Moq的新手.我有一个方法,它将字符串作为参数.如何使用XUnit处理异常.
[Fact]
public void ProfileRepository_GetSettingsForUserIDWithInvalidArguments_ThrowsArgumentException() {
//arrange
ProfileRepository profiles = new ProfileRepository();
//act
var result = profiles.GetSettingsForUserID("");
//assert
//The below statement is not working as expected.
Assert.Throws<ArgumentException>(() => profiles.GetSettingsForUserID(""));
}
Run Code Online (Sandbox Code Playgroud)
正在测试的方法
public IEnumerable<Setting> GetSettingsForUserID(string userid)
{
if (string.IsNullOrWhiteSpace(userid)) throw new ArgumentException("User Id Cannot be null");
var s = profiles.Where(e => e.UserID == userid).SelectMany(e => e.Settings);
return s;
}
Run Code Online (Sandbox Code Playgroud) 我想在尝试执行无效操作时向客户端返回403 Forbidden.我需要使用的方法是什么?
我通过互联网搜索但我发现只有MVC 5:
如果您的web api方法的返回类型是HttpResponseMessage,那么您需要使用以下代码:
Run Code Online (Sandbox Code Playgroud)return Request.CreateErrorResponse(HttpStatusCode.Forbidden, "RFID is disabled for this site."); Or if the return type for your web api method is IHttpActionResult then you need to use the below code return StatusCode(HttpStatusCode.Forbidden,"RFID is disabled for this site.");如何为IActionResult类型返回403:
Run Code Online (Sandbox Code Playgroud)public IActionResult Put(string userid, [FromBody]Setting setting) { var result = _SettingsRepository.Update(userid, setting); if (result == true) { return Ok(201); } else { return BadRequest(); } }
我想使用streams api更新另一个列表中的对象列表.
我有一个List<User> users具有List<Filter> filters.我想更新匹配userID和相应filterName的元素,并将Filter对象作为参数.地图不允许我这样做.
我尝试过以下但是地图似乎不允许映射多个元素.
public void update(String userID, Filter filter) {
users.stream()
.filter(element -> element.getUserId().equals(userID)
&& element.getFilters().stream().filter(f -> f.getName().equals(filter.getName())).findAny().isPresent())
.forEach(x -> {
x.getFilters().stream().map(s -> {
s.setCreatedOn(filter.getCreatedOn());
s.setDescription(filter.getDescription());
s.setEnabled(filter.isEnabled());
s.setFilterValue(filter.getFilterValue());
s.setReadOnly(filter.isReadOnly());
s.setModifiedOn(filter.getModifiedOn());
s.setName(filter.getName());
s.setType(filter.getType());
s.setValid(filter.isValid());
s.setEncrypted(filter.isEncrypted());
});
});
}
Run Code Online (Sandbox Code Playgroud)
什么是可用于执行内部更新的方法 List<Filter>
在我们的生产环境中,我们经常看到分区在使用主题消息时复制不足。我们正在使用 Kafka 0.11。从文档中可以理解的是
配置参数replica.lag.max.messages已删除。在决定哪些副本同步时,分区领导将不再考虑滞后消息的数量。
配置参数replica.lag.time.max.ms现在不仅指自上次从副本获取请求以来经过的时间,还指自副本上次赶上以来的时间。仍在从领导者获取消息但没有赶上最新消息的副本replica.lag.time.max.ms将被视为不同步。
我们如何解决这个问题?副本不同步的不同原因是什么?在我们的场景中,我们在刀片服务器的单个机架中拥有所有 Kafka 代理,并且都使用具有 10GBPS 以太网(单工)的相同网络。我没有看到副本因网络而失去同步的任何原因。
要求是为输入 JSON 对象创建一个通用的扁平化实用程序以扁平化 JSON 对象。
示例 JSON 如下所示
{
"Source": "source-1",
"Rows": [
{
"Keys": {
"device-id": "BC04-EBH-N3K-01",
"interface-name": "TenGigE0/0/0/39",
"node-name": "0/0/CPU0"
},
"Timestamp": 1567621527656,
"inner": {
"donm": {
"id": "0062",
"mol": {
"rem": 30,
"len": 11,
"org": {
"ldp": [
{
"t": 486,
"o": 322
},
{
"t": 487,
"o": 32,
"twss": 1,
"tlv": "00:01"
}
]
},
"chlen": 14,
"poe": 5,
"combs": 10,
"chaype": 4,
"rek": 0,
"rem-um": 67
},
"detail": {
"enas": "B,R",
"systes": "B,R",
"timng": 91, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 DictReader 从 csv 文件中获取第一条记录作为 dict。我无法理解,因为文档只讨论迭代阅读器对象
with open(filename, 'r') as f_in:
# Use the csv library to set up a DictReader object.
trip_reader = csv.DictReader(f_in)
# Use a function on the DictReader object to read the
# first trip from the data file and store it in a variable.
for row in trip_reader:
pprint(row)
Run Code Online (Sandbox Code Playgroud)
是否有任何函数可以将第一条记录作为trip_reader [0]?
我正在学习scala,想了解如何Futures针对咖喱函数实现
import scala.concurrent.{Await, Future}
import scala.concurrent.duration.Duration
import scala.concurrent.ExecutionContext.Implicits.global
object MainApp {
def main(args: Array[String]): Unit = {
val x = curriedMultiply(10) _ andThen Await.result(curriedAdd(10),Duration.Inf)
println(x(2))
}
def curriedAdd(x: Int)(y: Int) : Future[Int]= Future {
x + y
}
def curriedMultiply(x: Int)(y: Int) : Future[Int] = Future {
x * y
}
}
Run Code Online (Sandbox Code Playgroud)
获取值时出现以下编译器错误
Type mismatch, expected: Awaitable[NotInferedT], actual: Int => Future[Int]
Run Code Online (Sandbox Code Playgroud) 我有一个使用 ProcessBuilder API 执行 linux shell 命令的方法。但是,当我尝试执行从 eclipse 创建的 Runnable Jar 时,它给出了如下错误。我浏览了很多博客和帖子,但无法解决该问题。
我使用的是java 1.7
XARGS 命令给我以下信息
xargs --show-limits
Your environment variables take up 3064 bytes
POSIX upper limit on argument length (this system): 2616328
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2613264
Size of command buffer we are actually using: 131072
List<String> list = getList();
for(Iterator<String> itr = list.iterator();itr.hasNext();)
{
String command = itr.next();
System.out.println("Length of String "+command.length()); …Run Code Online (Sandbox Code Playgroud) 我有一个自由格式的文本文件(不是XML),我想从中解析两个模式之间的线。这是样本数据
<Hi>
col1 col2 col3
1 2 3
4 5 6
helo how are
<How>
col1 col2
1 2
helo hi'
Run Code Online (Sandbox Code Playgroud)
我想每个标签之间即解析数据<Hi>和blank线作为一个字符串。类似地,<How> 和之间的数据blank作为另一字符串。
到目前为止,我尝试过的正则表达式模式不起作用。
val pattern = "^<Hi>(.*)\\n"
val pattern = "^<Hi>(.*)\\s*$"
val pattern = "^<Hi>(.*)"
val pattern = "^<Network>(.*)((\\r\\n|\\n|\\r)$)|(^(\\r\\n|\\n|\\r))|^\\s*$"
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以为空白行指定模式。任何帮助表示赞赏。
我是scala的新手。我想知道是否有更好的方法可以更好地编写以下if-else语句。这纯粹是我的学习
val tokenizationRequired = if (args(4).equals("true")) true else false
if (tokenizationRequired) {
primary_key = args(5)
if (primary_key.equals("") || primary_key.isEmpty) {
log info s"Primary_Key cannot be empty"
}
lookupPath = args(6)
if (lookupPath.equals("") || lookupPath.isEmpty) {
log info s"lookupPath cannot be empty"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的案例陈述,没有奏效
val primary_key = args(5) match {
case " " => log info s"lookupPath cannot be empty"
case _ => args(5)
}
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助。
我正在尝试读取属性文件以获取值。但是,代码抛出异常。
例外
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.cisco.installbase.hiveconnector.ReadProperties.getInstance(ReadProperties.java:28)
at com.cisco.installbase.hiveconnector.MainApp.main(MainApp.java:7)
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at com.cisco.installbase.hiveconnector.ReadProperties.<init>(ReadProperties.java:16)
at com.cisco.installbase.hiveconnector.ReadProperties.<init>(ReadProperties.java:12)
at com.cisco.installbase.hiveconnector.ReadProperties$PropHolder.<clinit>(ReadProperties.java:23)
... 2 more
Run Code Online (Sandbox Code Playgroud)
读取属性.java
package com.cisco.installbase.hiveconnector;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
public class ReadProperties {
private final Properties props = new Properties();
private ReadProperties()
{
InputStream in = this.getClass().getClassLoader().getResourceAsStream("config.properties");
try{
props.load(in);
}catch(IOException e){
e.printStackTrace();
}
}
private static class PropHolder{
private static final ReadProperties INSTANCE = new ReadProperties();
}
public static …Run Code Online (Sandbox Code Playgroud) Dataset<Tweet> ds = sc.read().json("/path").as(Encoders.bean(Tweet.class));
Tweet class :-
long id
string user;
string text;
ds.printSchema();
Run Code Online (Sandbox Code Playgroud)
输出:-
root
|-- id: string (nullable = true)
|-- text: string (nullable = true)
|-- user: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
json文件具有字符串类型的所有参数
我的问题是接受输入并将其编码为Tweet.class。模式中为id指定的数据类型为Long,但在打印模式时将其强制转换为String。
它是否为printscheme a / c提供了读取文件的方式或根据我们所做的编码(此处为Tweet.class)?
java ×4
scala ×3
c# ×2
apache-kafka ×1
apache-spark ×1
asp.net-core ×1
csv ×1
eclipse ×1
jackson ×1
java-8 ×1
json ×1
lambda ×1
list ×1
maven ×1
properties ×1
python ×1
regex ×1
unit-testing ×1
xunit ×1