小编Man*_*tha的帖子

Mockito:doThrow()和thenThrow()之间的区别

doThrow()和之间有什么区别thenThrow()

假设我们想要模拟身份验证服务来验证用户的登录凭据.如果我们要模拟异常,以下两行之间的区别是什么?

doThrow(new BadCredentialsException("Wrong username/password!")).when(authenticationService).login("user1", "pass1");
Run Code Online (Sandbox Code Playgroud)

VS

when(authenticationService.login("user1", "pass1")).thenThrow(new BadCredentialsException("Wrong username/password!"));
Run Code Online (Sandbox Code Playgroud)

mockito

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

如何从ValueListBox值中删除空值

我是GWT的新手.我正在编写一个简单的GWT程序,我需要使用一个组合框,我使用了一个实例ValueListBox.在那个组合中,我需要列出1到12之间的数字,代表一年中的几个月.但是这个组合null最后增加了价值.任何人都可以帮我如何删除该null值?

    final ValueListBox<Integer> monthCombo = new ValueListBox<Integer>(new Renderer<Integer>() {

            @Override
            public String render(Integer object) {
                return String.valueOf(object);
            }

            @Override
            public void render(Integer object, Appendable appendable) throws IOException {
                if (object != null) {

                    String value = render(object);
                    appendable.append(value);
                }
            }
        });
    monthCombo.setAcceptableValues(getMonthList());
    monthCombo.setValue(1);

    private List<Integer> getMonthList() {
        List<Integer> list = new ArrayList<Integer>();

        for (int i = 1; i <= 12; i++) {
            list.add(i);
        }

        return list;
    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java gwt google-app-engine

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

Angular - 无法绑定到'ngValue',因为它不是'mat-option'的已知属性

我正在使用角度5,我收到控制台错误:

无法绑定到'ngValue',因为它不是'mat-option'的已知属性

我的模板看起来如下所示:

  <mat-select placeholder="Select Book" name="patient" [(ngModel)]="selectedBook">
     <mat-option *ngFor="let eachBook of books" [ngValue]="eachBook">{{eachBook.name}}</mat-option>
  </mat-select>
Run Code Online (Sandbox Code Playgroud)

我已经导入了两个MatSelectModuleMatOptionModule.

我们怎么解决这个问题?

angular angular5

10
推荐指数
2
解决办法
8998
查看次数

不推荐使用 Vue 3 ::v-deep 作为组合器。使用 ::v-deep(&lt;inner-selector&gt;) 代替

我开始在 Vue 3 中::v-deep使用以下警告。

::v-deep usage as a combinator has been deprecated. Use ::v-deep(<inner-selector>) instead
Run Code Online (Sandbox Code Playgroud)

CSS 如下所示:

.parent ::v-deep .child {
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用建议选项的正确方法是::v-deep(<inner-selector>)什么?

css vue.js vuejs3

8
推荐指数
3
解决办法
6581
查看次数

WireMock:如何模拟文件下载过程?

我是新来的WireMock. 我将WireMock服务器作为独立进程运行。我可以通过配置/mappings文件夹下的 json 文件来模拟简单的 REST API。现在,我想模拟一个文件下载端点。我怎样才能做到这一点?

我不知道它是否有帮助,终点是在 Java/Spring 中,如下所示:

@RequestMapping(value = "xxx/get", method = {RequestMethod.GET})
public ResponseEntity<Object> getFile(HttpServletResponse response) throws Exception {

    final Resource fileResource = fileResourceFactoryBean.getObject();

    if (fileResource.exists()) {
        try (InputStream inputStream = fileResource.getInputStream()) {
            IOUtils.copy(inputStream, response.getOutputStream());

            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition", "attachment; filename=" + fileResource.getFilename());

            response.flushBuffer();
            inputStream.close();

            return new ResponseEntity<>(HttpStatus.OK);
        } catch (Exception e) {
            LOGGER.error("Error reading file: ", e);
            return new ResponseEntity<Object>("Error reading file.", HttpStatus.BAD_REQUEST);
        }
    }

    return new ResponseEntity<Object>(fileResource.getFilename() + " not found.", …
Run Code Online (Sandbox Code Playgroud)

spring-mvc wiremock

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

速度数组到javascript数组

我需要将速度字符串数组传递给 JavaScript 函数。因此,为此,我想将速度数组转换为 JavaScript 数组。

源代码如下所示:

String[] arrStr[] = new String[3];
arrStr[0] = "String 1";
arrStr[1] = "String 2";
arrStr[2] = "String 3";
request.setAttribute("a", arrStr);
Run Code Online (Sandbox Code Playgroud)

在我的 HTML 模板中,

#set ( #arr = $request.getAttribute("a"))

<script language="javascript">

var newArr = "${arr}";

</script>
Run Code Online (Sandbox Code Playgroud)

但字符串数组不会复制到 newArr。谁能帮我解决这个问题?

javascript velocity

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

如何根据选定的选项文本选择<select>元素?

假设<select>表单中有许多元素.我需要一个选择器来选择一个<select>元素,其选择的选项具有特定的文本.为了解释,假设有5个<select>"颜色"类的元素.他们每个人都有3个<option>文本"白色","黑色","绿色".现在我需要选择所选选项为"白色"的元素.

<select class="color" > 
  <option value=""></option>
  <option value="1"> white </option>
  <option value="2"> black </option>
  <option value="2"> green </option>
</select>
Run Code Online (Sandbox Code Playgroud)

在如下图所示的场景中,我需要选择那两个白色<select>.

在此输入图像描述

谢谢.

javascript jquery select

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

Angular 2+中* ngIf与[ngSwitch]之间的区别

[ngSwitch]和一堆*ngIfs 有什么区别。我们应该关注任何性能因素吗?

* ngIf

  <div *ngIf="day === 'MONDAY'">
     Keep calm and pretend it's not Monday.
  </div>
  ...
  <div *ngIf="day === 'FRIDAY'">
     Happy Friday!
  </div>
Run Code Online (Sandbox Code Playgroud)

[ngSwitch]

<ng-container [ngSwitch]="day">

     <div *ngSwitchCase="'MONDAY'">
         Keep calm and pretend it's not Monday.
     </div>
     ...
     <div *ngSwitchCase="'FRIDAY'">
         Happy Friday!
     </div>

</ng-container>
Run Code Online (Sandbox Code Playgroud)

ng-switch angular-ng-if angular

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

Spring Boot 2.5.x:所需的请求部分“文件”不存在

spring boot我有一个文件上传 api,在该版本下工作得很好2.1.13。版本升级到 后2.5.2,开始抛出异常。查看更改日志,我看不到任何与处理相关的重大更改Multipart。我在这里可能会缺少什么?以下是我的示例代码。

例外

org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present
    at org.springframework.web.servlet.mvc.method.annotation.RequestPartMethodArgumentResolver.resolveArgument(RequestPartMethodArgumentResolver.java:161) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) ~[spring-web-5.3.8.jar:5.3.8]
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:170) ~[spring-web-5.3.8.jar:5.3.8]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) ~[spring-web-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.8.jar:5.3.8]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.8.jar:5.3.8]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [tomcat-embed-core-9.0.48.jar:4.0.FR]
Run Code Online (Sandbox Code Playgroud)

应用程序属性

spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=20MB
Run Code Online (Sandbox Code Playgroud)

控制器端点

@PostMapping(
    value = "/upload", 
    consumes = MediaType.MULTIPART_FORM_DATA_VALUE, 
    produces = MediaType.APPLICATION_JSON_VALUE
)
public ResponseEntity<Object> uploadFile(@RequestPart("file") MultipartFile file) …
Run Code Online (Sandbox Code Playgroud)

spring file-upload multipartform-data spring-mvc spring-boot

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

Eclipse:无法解析org.hamcrest.core.CombinableMatcher $ CombinableBothMatcher类型.它是从所需的.class文件间接引用的

我正在Spring MVC使用TestNG和进行单元测试控制器Mockito.我Hamcrest在Maven依赖项中包含了库,如下所示.我在这里错过了什么?当我使用以下两种方法时出现错误:

org.hamcrest.Matchers.hasSize;
org.hamcrest.Matchers.is;
Run Code Online (Sandbox Code Playgroud)

以下是我的依赖项:

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.9.4</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>1.10.8</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-library</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

更新1:

通过更改hamcrest-library为已解决问题hamcrest-all.

    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

更新2:

根据Tunaki的建议,更好的解决方案是hamcrest-coremockito库中排除传递依赖.所以最终的依赖关系应如下所示:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>1.10.8</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-library</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

eclipse unit-testing hamcrest mockito maven

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