小编The*_*vat的帖子

如何使 Spring 的 @Autowired 在 JUnit 5 扩展中工作?

我有一个 Spring Boot 应用程序,我正在尝试@Autowired在 JUnit 5 扩展中使用。但是,我无法让它工作。(该@Autowired字段为空。)有人可以帮忙吗?

下面是演示我遇到的问题的代码(重要的部分是SomeExtensionSomeTest。正如所写的那样,mvn test导致测试失败beforeEach。对不起,如果我包含的太多。

src/test/java/somepackage/SomeExtension.java:

package somepackage;

import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;

import static org.junit.jupiter.api.Assertions.assertNotNull;

@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SomeExtension implements BeforeEachCallback {
    @Autowired
    SomeBean bean;

    @Override
    public void beforeEach(ExtensionContext context) {
        assertNotNull(bean);
    }
}
Run Code Online (Sandbox Code Playgroud)

src/test/java/somepackage/SomeTest.java:

package somepackage;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;


@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ExtendWith(SomeExtension.class)
class SomeTest { …
Run Code Online (Sandbox Code Playgroud)

java junit spring spring-boot junit5

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

在c/c ++中访问const变量的速度

访问const变量的速度是否比非const变量快?我想知道是否值得使用const更多作为优化程序的一步.

c c++ optimization performance

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

如何不从 Docker 中的基础镜像继承标签?

当 docker 镜像 X 用作 docker 镜像 Y 的基础镜像时,镜像 Y 会继承 X 的所有标签。也就是说,图像 Y 具有 X 的所有标签以及 Y 添加的任何标签。

有什么方法可以防止这种标签继承发生,无论是在 Dockerfile 中还是在命令中docker build

docker dockerfile docker-image docker-build

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

使用valarrays发生奇怪的C++编译错误

我在C++中使用valarrays有一个奇怪的编译错误.

这是我的代码的精简版:

#include <iostream>
#include <valarray>

using namespace std;

bool test(const int &x,const valarray<int> &a,const valarray<int> &b) {
    return a*x==b;
}

int main() {
    int a1[3]= {1,2,3};
    int b1[3]= {2,4,6};
    valarray<int> a(a1,3);
    valarray<int> b(b1,3);
    int x=2;
    cout<<test(x,a,b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期的行为:输出true或的一些变体1

编译错误(使用g ++):

main.cpp: In function ‘bool test(const int&, const std::valarray<int>&, const std::valarray<int>&)’:
main.cpp:7:14: error: cannot convert ‘std::_Expr<std::_BinClos<std::__equal_to, std::_Expr, std::_ValArray, std::_BinClos<std::__multiplies, std::_ValArray, std::_Constant, int, int>, int>, bool>’ to ‘bool’ in return
  return a*x==b;
              ^
Run Code Online (Sandbox Code Playgroud)

这个编译错误意味着什么,以及如何解决它?

c++ compiler-errors std syntax-error valarray

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

Xcode上奇怪的编译时错误

xcode 4.2中的代码

游戏Model.h

#import <Foundation/Foundation.h>

@interface Game_Model : NSObject{
    NSString  *playerName;
    int play;
    int won;
}

@property (nonatomic,retain) NSString *playerName;
@property (nonatomic,readonly,assign) int play;
@property (nonatomic,readonly,assign) int won;
@end
Run Code Online (Sandbox Code Playgroud)

游戏Model.m

#import "Game Model.h"

@implementation Game_Model
@synthesize playerName,play,won;

+(NSString *)description{
    return [NSString stringWithFormat:@"%@. Player:%@. Score: %d/%d",[super description],self.playerName,self.won,self.play];
}
@end
Run Code Online (Sandbox Code Playgroud)

我完全(或几乎完全)和书中一样,但我得到了错误消息:

  • 使用ARC不允许将Objective-C指针隐式转换为'struct objc_class*'
  • 成员引用类型'struct objc_class*'是一个指针; 也许你打算用' - >'?
  • 'struct objc_class'类型的不完整定义自动引用计数问题:
  • 使用ARC不允许将Objective-C指针隐式转换为'struct objc_class*'我根本不知道这些错误!请帮我!

iphone xcode syntax-error compile-time

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

无法调整c ++ std :: vector的大小,它是类的成员变量

代码(简化版)

(部分)类定义:

struct foo {
    std::vector<int> data;
    foo(int a=0):data(a+1,0) {}
    void resize(int a) {
        data.resize(a+1,0);
    }
}
Run Code Online (Sandbox Code Playgroud)

a+1部分是因为我想要data1索引来简化一些操作.

在全球范围内:

int k;
foo bar;
Run Code Online (Sandbox Code Playgroud)

main功能:

std::cin>>k;
bar.resize(k);
Run Code Online (Sandbox Code Playgroud)

稍后在main函数中,调用另一个成员函数(in foo)访问data,导致a segmentation fault(segsegv).

调试后,我发现data.size()返回0.这是非常意外的.

调试的很长的会议结束后,我感到非常有信心,这个问题是与resizeING,这应该不会造成任何问题(这是从标准库,毕竟!).

PS不要指责我将任何东西放在全球范围内或让公众可以访问集体成员.我不是在写任何"真正的"程序,因为我只是在参加编程比赛.

c++ vector segmentation-fault stdvector c++-standard-library

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

如何将 tokio TcpStream 转换为可序列化/反序列化值的接收器/流?

我有一个东京TcpStream。我想T通过这个流传递一些类型。这种类型的T实现SerializeDeserialize. 我怎样才能获得 aSink<T>和 a Stream<T>

我找到了板条箱tokio_utiltokio_serde,但我不知道如何使用它们来做我想做的事情。

rust serde rust-tokio

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