小编Abi*_*ami的帖子

即使在无服务器yaml中设置了params后,QueryString参数也未得到验证

我通过使用无服务器框架部署的lambda函数配置了API网关.我已经在yaml文件中定义了一些queryStringParameters为true.但是,即使在URL中未传递Required(强制)queryStringParams,请求也会通过该服务.PFB类似的配置.

functions: functionName: name: serviceName handler: handler.handle events: - http: path: /path method: get request: parameters: querystrings: param1: true param2: true

似乎无服务器无法验证param1和param2是否作为queryString传递.我们应该有一个明确的请求验证器吗?是否可以使用无服务器?

aws-lambda serverless-framework

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

Junit 测试在作为类/包单独运行时运行良好,但在从文件夹与其他包一起运行时失败

我在为其编写测试的文件夹下有多个包。当作为类或从驻留包运行时,这些测试会通过。但是当我从整个文件夹运行它时,测试失败并出现mockito异常。例如,EmailHandlerTest 类单独通过,并且当作为“电子邮件”包中的包运行时也通过。但是,当我从 bff 文件夹中作为一个整体运行测试时,许多类都会抛出与mockito有关的错误。

文件夹结构

从电子邮件包运行时测试通过

当从整个文件夹一起运行时,测试因mockito错误而失败

错误:

java.lang.NullPointerException: Cannot invoke "[Ljava.lang.Class;.clone()" because " 
<local2>.parameterTypes" is null

at java.base/java.lang.reflect.Method.getParameterTypes(Method.java:314)
at org.mockito.internal.creation.DelegatingMethod.<init>(DelegatingMethod.java:20)
at org.mockito.internal.invocation.DefaultInvocationFactory.createMockitoMethod(DefaultInvocationFactory.java:81)
at org.mockito.internal.invocation.DefaultInvocationFactory.createInvocation(DefaultInvocationFactory.java:60)
at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:83)
at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:56)
at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptAbstract(MockMethodInterceptor.java:161)
at com.<package>.bff.repository.EmailTemplateRepository$MockitoMock$520687419.findByEmailTemplateId(Unknown Source)
at <package>.bff.email.EmailHandlerTest.sendProjectCompletionMail_Should_Send_Email_Successfully(EmailHandlerTest.java:926)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
Run Code Online (Sandbox Code Playgroud)

EmailHandlerTest 类中单个方法的代码。此类中还有许多其他类似的方法,但都因相同的错误而失败:

@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
public class EmailHandlerTest {

@Mock private EmailTemplateRepository emailTemplateRepository;

<<Few Other Mocks here>>

@InjectMocks EmailHandler emailHandler;

@TempDir
Path reportDir;

private static TestUtils testUtils …
Run Code Online (Sandbox Code Playgroud)

junit mockito

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

标签 统计

aws-lambda ×1

junit ×1

mockito ×1

serverless-framework ×1