我的集合范围中有变量“TOKEN” 。我尝试在发出请求时使用测试脚本设置值。但变量没有改变。
因此,我尝试使用环境范围变量。它有效。
为什么它在集合范围内不起作用?我在这里阅读了关于邮递员变量作用域的内容并且很好地理解了它。
这是一些屏幕截图:
1. 首先,我调用登录端点。
下面是控制台结果。没有什么不对。
直到我尝试获取请求标头中需要令牌的所有用户端点。状态为 401,因为令牌为空。如果 token 不为 null,则返回 200:
当我将“TOKEN”变量添加到环境中时,它可以正常工作。再次切换到无环境将导致 401 状态代码:
我有以下代码:
class SimpleTest {
@Test
fun observable_isPass() {
val store = FirebaseFirestore.getInstance()
assert(true)
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行测试时,它在下面抛出异常:
Method getMainLooper in android.os.Looper not mocked.
Run Code Online (Sandbox Code Playgroud)
如何在单元测试中测试 firestore 数据?
我已经知道我们可以从下面的代码创建全局拦截器:
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
},
],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
来源:文档
但是,如果我想说,UserInterceptor.
UserInterceptor将从数据库中获取用户并转换请求。
UserInterceptor需要注入让说UserService。
我想在UserInterceptor全球范围内使用。
@Injectable()
export class UserInterceptor {
constructor(private readonly service: UserService) {}
}
Run Code Online (Sandbox Code Playgroud)
从文档中,我们不能这样做,app.useGlobalInterceptors(new UserInterceptor())因为UserInterceptor在构造函数 (UserService) 中需要 1 个参数。
而且由于我们使用了APP_INTERCEPTORfor LoggingInterceptor,我没有找到另一种方法来分配另一个值来APP_INTERCEPTOR全局使用拦截器。
例如,我认为如果我们可以这样做,问题就会解决:
providers: [
{
provide: APP_INTERCEPTOR,
useClass: [LoggingInterceptor, …Run Code Online (Sandbox Code Playgroud)