我们正面临一个问题,我们希望动态替换 GraphQL Schema 上的自定义订阅对象(主要用于测试)。我们目前有以下架构:
class MySchema < GraphQL::Schema
query CustomQueryType
mutation CustomMutationType
subscription CustomSuscriptionType
use CustomSubscriptions # We want to replace this on the fly
end
CustomSubscriptions
本身派生自GraphQL::Subscriptions
并使用一些外部依赖项来存储/触发订阅。在测试时,我们不一定要处理这些依赖关系,所以我们想用一些模拟或一些不需要相同外部依赖关系的实现来替换那里的订阅。例如,我想做:
class SubscriptionsTest < ActiveSupport::TestCase
def setup
mySchema.use(MyTestSubscriptions) # This doesn't work :(
end
...
end
但是,这不会将我们CustomSubscriptions
从模式中删除。我试图更新架构以允许设置订阅实例,但到目前为止没有成功。
有没有办法完成我所追求的?我错过了一些 setter/helper 方法?