小编wan*_*onk的帖子

使用XUnit断言异常

我是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)

c# unit-testing xunit

82
推荐指数
3
解决办法
5万
查看次数

如何在ASP.NET Core中将403 Forbidden响应作为IActionResult返回

我想在尝试执行无效操作时向客户端返回403 Forbidden.我需要使用的方法是什么?

我通过互联网搜索但我发现只有MVC 5:

如果您的web api方法的返回类型是HttpResponseMessage,那么您需要使用以下代码:

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.");
Run Code Online (Sandbox Code Playgroud)

如何为IActionResult类型返回403:

public IActionResult Put(string userid, [FromBody]Setting setting)
 {
    var result = _SettingsRepository.Update(userid, setting);
    if (result == true)
    {
       return Ok(201);
    }
    else
    {
       return BadRequest();
    }
 }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

29
推荐指数
4
解决办法
3万
查看次数

使用lambda表达式更新嵌套列表:Java 8

我想使用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>

java lambda list java-8

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

在 kafka 中的复制分区下修复

在我们的生产环境中,我们经常看到分区在使用主题消息时复制不足。我们正在使用 Kafka 0.11。从文档中可以理解的是

配置参数replica.lag.max.messages已删除。在决定哪些副本同步时,分区领导将不再考虑滞后消息的数量。

配置参数replica.lag.time.max.ms现在不仅指自上次从副本获取请求以来经过的时间,还指自副本上次赶上以来的时间。仍在从领导者获取消息但没有赶上最新消息的副本replica.lag.time.max.ms将被视为不同步。

我们如何解决这个问题?副本不同步的不同原因是什么?在我们的场景中,我们在刀片服务器的单个机架中拥有所有 Kafka 代理,并且都使用具有 10GBPS 以太网(单工)的相同网络。我没有看到副本因网络而失去同步的任何原因。

apache-kafka

5
推荐指数
1
解决办法
2万
查看次数

在java中展平三层嵌套的JSON字符串

要求是为输入 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)

java json jackson

5
推荐指数
2
解决办法
1万
查看次数

使用 DictReader 从 csv 文件中获取第一条记录

我正在尝试使用 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]?

python csv

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

Scala中带有期货的咖喱函数

我正在学习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)

scala function-composition

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

java.io.IOException:错误= 36,java中的文件名太长

我有一个使用 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)

java eclipse processbuilder

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

RegEx解析Scala中两个字符串之间的行

我有一个自由格式的文本文件(不是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)

有没有一种方法可以为空白行指定模式。任何帮助表示赞赏。

regex scala

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

如果在单个语句中:scala

我是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)

感谢你的帮助。

scala

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

未找到属性文件并抛出异常?

我正在尝试读取属性文件以获取值。但是,代码抛出异常。

例外

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)

java properties maven properties-file

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

Apache Spark中的Printschema()

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)?

apache-spark spark-dataframe apache-spark-dataset

0
推荐指数
1
解决办法
2万
查看次数