小编Aym*_*byk的帖子

我什么时候应该使用 setupFiles 而不是 setupFilesAfterEnv?

我看到 jest 中有两个配置选项,用于在每次测试之前运行一些代码:setupFilessetupFilesAfterEnv. 在我看来,这setupFilesAfterEnv提供了更多的灵活性(我可以使用jestbeforeEach等等......),所以我不明白在什么情况下setupFiles会更有用。有人可以提供一个您需要使用setupFiles而不是的示例setupFilesAfterEnv吗?

文档:https : //jestjs.io/docs/en/configuration#setupfiles-array

jestjs

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

NoMethodError:控制器测试中未定义的方法“assert_emails”

根据Rails 文档,该方法assert_emails允许转换语法:

assert_difference ->{ ActionMailer::Base.deliveries.size }, +1 do
  post :method_that_should_send_email
end
Run Code Online (Sandbox Code Playgroud)

assert_emails 1 do
  post :method_that_should_send_email
end
Run Code Online (Sandbox Code Playgroud)

我发现它好多了,因为我不必每次都复制粘贴长语法。

但是,在使用上述代码时,我的控制器测试中出现以下错误:

NoMethodError: undefined method `assert_emails'

我认为这是因为该方法仅在邮件程序测试中可用。

有没有办法让它也可用于控制器测试?默认情况下这不可用是否有充分的理由?有没有更好的方法来测试调用特定路由会导致发送电子邮件?

谢谢。

testing ruby-on-rails ruby-on-rails-5

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

缺少导入时如何从 VS Code 创建文件

我有时会输入:

import something from "./something";

知道文件./something.js不存在。有没有办法告诉 VS Code 创建它?

visual-studio-code vscode-settings

7
推荐指数
0
解决办法
241
查看次数

React-Native中的release-debug配置

目前,在React-Native中,根据文档,要构建用于生产的iOS应用程序,您需要:

  • 将你的计划改为 Release
  • 更改您AppDelegate.m的加载正确的捆绑
  • 改变你Info.pList的ATS

这强烈违反了12因素配置建议,并导致在持续集成过程中出错.

RN没有提供开箱即用的策略来了解JS代码中的配置环境,导致包的存在react-native-config,这已经做得很好,但并不完美(Xcode不完全支持).

为什么会这样?是因为今天生产的RN应用实际上很少,没有人关心这个?我们能做得更好react-native-config,不需要上面列出的步骤吗?我想要一个命令行,以我可以运行的方式存档我的应​​用程序cd android && ./gradlew assembleRelease,而不更改我的配置.

编辑:

Fastlane通过其gym命令使部署变得更加容易(谢谢Daniel Basedow).显然,Xcode的理念是调用环境"方案",只有你不能在其中存储变量,或者知道你在代码中运行的是哪种方案......无论如何,David K. Hess找到了一个很好的方法来导出你的方案你的名字Info.plist,然后在你的Objective C代码中,这意味着我现在能够根据当前的方案选择我的包,而不是触摸我的代码.

这是我的代码: NSString *schemeName = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"SchemeName"]; if ([schemeName isEqualToString:@"scheme1"]) { jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; } else if ([schemeName isEqualToString:@"scheme2"]) { jsCodeLocation = [NSURL URLWithString:@"http://<my_local_ip_address>:8081/index.ios.bundle?platform=ios&dev=true"]; } else if ([schemeName isEqualToString:@"scheme3"]) { jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; } …

configuration release ios react-native

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

在Jest中调试内存泄漏应遵循哪些步骤?

我在Jest中进行的测试似乎正在泄漏:

在此处输入图片说明 在此处输入图片说明

调试此类问题的建议步骤是什么?

我是这种问题的新手。如您所见,我尝试传递Jest中记录的选项(--forceExit --detectOpenHandles --runInBand --logHeapUsage),但这不能解决我的问题。

memory-leaks jestjs

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

如何在 GraphQL 和 DataLoader 中使用 Mongoose?

我使用MongoDB作为我的数据库和GraphQL。我正在为我的模型使用猫鼬。我意识到我的 GraphQL 查询很慢,因为重复加载相同的文档。我想使用DataLoader来解决我的问题,但我不知道如何。

例子

假设我有以下模式,用朋友描述用户:

// mongoose schema
const userSchema = new Schema({
  name: String,
  friendIds: [String],
})

userSchema.methods.friends = function() {
  return User.where("_id").in(this.friendIds)
}

const User = mongoose.model("User", userSchema)

// GraphQL schema
const graphqlSchema = `
  type User {
    id: ID!
    name: String
    friends: [User]
  }

  type Query {
    users: [User]
  }
`

// GraphQL resolver
const resolver = {
  Query: {
    users: () => User.find()
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的数据库中的一些示例数据:

[
  { …
Run Code Online (Sandbox Code Playgroud)

caching mongoose mongodb node.js graphql

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