小编ala*_*yor的帖子

在NodeJS中重新抛出异常而不会丢失堆栈跟踪

如何在nodejs/javascript中重新抛出错误或异常并包含自定义消息.

我有以下代码

var json = JSON.parse(result);
Run Code Online (Sandbox Code Playgroud)

result如果发生任何解析错误,我想在异常消息中包含内容.像这样的东西.

1.  try {
2.    var json = JSON.parse(result);
3.    expect(json.messages.length).to.be(1);
4.  } catch(ex) {
5.    throw new Error(ex.message + ". " + "JSON response: " + result);
6.  }
Run Code Online (Sandbox Code Playgroud)

这里的问题是我丢失了堆栈跟踪.

有没有办法做到这一点java

throw new Error("JSON response: " + result, ex);
Run Code Online (Sandbox Code Playgroud)

javascript exception-handling node.js expect.js

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

从gitlab中的提交消息引用一个问题

是否可以通过提交消息引用Gitlab中的问题?我在网上找不到任何东西.

commit issue-tracking gitlab

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

groovy中的私有方法不是私有的

class A {
    private def sayHello() {
       println "Anish"
    } 
 }

 def a_obj = new A()
 a_obj.sayHello()
Run Code Online (Sandbox Code Playgroud)

输出: Anish

有没有什么方法可以保护sayHello()groovy或我错过了什么?

groovy private private-members

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

在java中扩展参数化工厂方法

我是OOP的新手并学习设计模式所以我写了一些简单的代码来试用一个Factory方法,一切看起来都不错,除非我想添加另一个子类型.这是迄今为止的代码:

public interface Person {
  public String getDescription();
}

public class Adult implements Person { 
  @Override
  public String getDescription() {
    return "I am an ADULT";
  }
}

public class Child implements Person {
  @Override
  public String getDescription() {
    return "I am a CHILD";
  }
}

public class PersonFactory {
  public Person create(int age) {
    if (age < 18) return new Child();
    return new Adult();
  }
}

public class ClientA {
  public static void main(String[] args) {
    PersonFactory personFactory = new …
Run Code Online (Sandbox Code Playgroud)

java factory-method open-closed-principle solid-principles

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

得到'TypeError:jest.fn不是函数`

我正在尝试使用创建以下单元测试jest.

jest.dontMock("pointsAwardingActions.js");
describe("points awarding actions", () => {
  describe("award points", () => {
    it("should dispatch begin ajax action", () => {
      var pointsAwardingActions = require("pointsAwardingActions.js");
      const mockedDispatch = jest.fn();
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

但运行后我收到以下错误npm test.

TypeError: jest.fn is not a function

这是我的一部分package.json.

{
  "scripts": {
    "test": "jest"
  },
  "author": "alayor",
  "license": "ISC",
  "jest": {
    "scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
    "testFileExtensions": ["spec.js"],
    "moduleFileExtensions": ["js"],
    "collectCoverage": "true"
  },
  "dependencies": {
    "babel-cli": "6.8.0",
    "babel-core": "6.8.0",
    "babel-jest": "^6.0.1",
    "babel-loader": "6.2.4",
    "babel-plugin-react-display-name": "2.0.0", …
Run Code Online (Sandbox Code Playgroud)

javascript mocking jasmine jestjs

9
推荐指数
2
解决办法
6186
查看次数

使用 `expect.any(Object)` 或 `expect.anything()` 无法匹配 Jest 中的 `undefined`

我有以下要测试的模块。

import * as apiUtils from './apiUtils';

export function awardPoints(pointsAwarding) {
  return apiUtils.callApiService("POST", "points", pointsAwarding);
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试。

it("should call apiUtils with correct path", () => {
  //given
  jest.spyOn(apiUtils, 'callApiService');

  //when
  pointsAwardingApi.awardPoints();

  //then
  expect(apiUtils.callApiService).toBeCalledWith(expect.any(String), 'points', expect.any(Object));
});
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此测试时,出现以下错误。

Any<Object> as argument 3, but it was called with undefined.

我原以为这expect.any(Object)也会匹配,undefined但似乎并非如此。

我也试过,expect.anything()但我遇到了类似的错误。

我可以简单地指定undefined为第三个参数,但我的测试仅用于验证第二个参数。

有没有办法可以使用匹配任何对象的匹配器,包括undefined

javascript unit-testing reactjs jestjs

8
推荐指数
2
解决办法
6170
查看次数

使用groupingBy的类的属性的Flat-Mapping Collector

我有这门课.

class Assignment {
  private Integer index;
  private List<Quantity> quantities;
}
Run Code Online (Sandbox Code Playgroud)

然后,我有一个来自该类的对象列表.

List<Assigment> assignments = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个Map包含索引AssignmentList<Quantity>as值的方法?

这是我到目前为止所尝试的.

assignments.stream().collect(groupingBy(Assignment::getIndex));
Run Code Online (Sandbox Code Playgroud)

但这给了我一个Map<Integer, List<Assignment>>,我想要一个Map<Integer, List<Quantity>>.

我已经尝试过使用forEach方法 - 它可以工作 - 但我确信必须有一种方法可以在一个衬里中完成它 - 或者至少只使用collectgroupingBy方法

java java-8 java-stream

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

如何使用有效负载提取模拟发布请求

我正在使用 wheresrhys fetch-mock npm 模块在我的应用程序中运行功能测试。我想用“POST”方法和特定的有效负载来模拟一次提取。

它看起来像这样:

fetchMock.mock({
        routes: {
            name: 'LoginSuccess',
            matcher: "https://myurl",
            method: 'POST',
            payload: {
                params:{User: "ABCDE@gmail.com", Password: "password"}
            },
            response: {  
                result:{
                    message: "Successful login", 
                    credentials: "XXXXXXXXXXXXX"
                }
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我想检查我的 fetch 的有效负载并相应地给出响应。例如,我可以模拟用户提交错误密码的一次登录,然后他们再次尝试并提交正确的信息并被授予访问权限。相同的 url,不同的负载,不同的响应。

是否有可能做到这一点?我知道可以检查获取的方法,但我想对有效载荷做同样的事情。

或者有没有更好的方法来做到这一点?

我还没有在模块的自述文件或fetch-mock 包的测试部分找到解决方案。

unit-testing functional-testing fetch fetch-mock

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

Spring Boot 授权服务器向外部服务发送请求以获取用户详细信息

我有很多服务,我想通过身份验证服务集中我的身份验证。现在我是 Spring boot 的菜鸟,我不知道如何使这成为可能。

我只是从 Spring 实现了正常的安全性,它工作得很好,我只找到了一些关于的教程jdbcAuthenticationinMemoryAuthentication等的教程,但没有找到身份验证服务向另一个服务发送请求的身份验证。有人知道这件事吗?

我的安全基于代币 ->JWT

我想我需要操纵AuthenticationManagerBuilder因为它决定用户名是否有效。

protected void configure(AuthenticationManagerBuilder auth) throws Exception {
}
Run Code Online (Sandbox Code Playgroud)

我用 Feign 提出请求 - 也许这段代码的位置错误

@Override
public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse res) throws AuthenticationException, IOException, ServletException {
    AccountCredentials credentials = new ObjectMapper()
            .readValue(req.getInputStream(), AccountCredentials.class);

    UserRequest userRequest = Feign.builder()
            .decoder(new GsonDecoder())
            .target(UserRequest.class,"http://localhost:7998/api/user-service/user/" + credentials.getUsername());

    return getAuthenticationManager().authenticate(new UsernamePasswordAuthenticationToken(credentials.getUsername(),credentials.getPassword(),emptyList()));
}
Run Code Online (Sandbox Code Playgroud)

java spring authorization spring-security microservices

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

在 Java Websocket API 客户端中获取响应代码不是 101: 400

我有以下WebSocketJava 客户端代码。

final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();

            ClientManager client = ClientManager.createClient();
            client.connectToServer(new Endpoint() {

                @Override
                public void onOpen(Session session, EndpointConfig config) {
                    try {
                        session.addMessageHandler((MessageHandler.Whole<String>) message -> {
                            System.out.println("Received message: "+message);
                        });
                        session.getBasicRemote().sendText(SENT_MESSAGE);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }, cec, new URI("wss://ws.bitso.com"));
        } catch (Exception e) {
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我收到此错误。

org.glassfish.tyrus.core.HandshakeException: Response code was not 101: 400
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

java websocket http-status-code-400 tyrus

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