小编tv1*_*902的帖子

使用 jest 模拟外部库调用

玩笑和反应代码测试的新手。我正在测试一个文件,该文件从react-native-base64导入base64并解码从useEffect中的后端系统获取的值。下面是示例代码。

import base64 from "react-native-base64";
 
  const xyzWork = async () => {
    const value = await - fetch data from backend
    const decodedValue = base64.decode(value);
    ...
    ...
    ...
  }

  useEffect(() => {
    xyzWork();
  }, []);


  return <div><SomeComponent /></div>;
Run Code Online (Sandbox Code Playgroud)

我在使用笑话测试此代码时遇到困难。我尝试了多种方法来测试相同的结果,但由于多个错误而失败。

有些方法,以同样的方式导入base64并像这样模拟。 base64.decode = jest.fn(()=> "testParsedValue");

尝试模拟整个库本身,const mockedLib = jest.mock("react-native-base64", () => jest.fn());然后模拟该变量的 base64,但似乎没有任何效果。

任何帮助,将不胜感激!谢谢!

javascript unit-testing reactjs jestjs ts-jest

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

在Perl中使用常量的最佳实践

我刚开始学习perl,我知道,常量在perl中被视为子例程。我不知道为什么为什么每次使用常量时都使用常数是一个好习惯,而CPU需要使用堆栈/跳转指令?

perl constants subroutine

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

需要了解step function重试机制

也许这个问题可以很快得到解答。我正在努力在步骤函数中添加重试机制。我想以 1 小时左右的间隔继续重试失败的活动 24 小时。

我在这里详细介绍了“错误后重试”部分: https: //docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html 它说“乘数每次尝试期间重试间隔都会增加(默认为 2.0)。” 并且还给出了 3 秒后第一次重试和 4.5 秒后下一次重试的示例,因为 BackoffRate 为 1.5。

那么这不是指数退避吗?因为,在同一页面上的“使用重试处理失败”部分下,它表示退避将以指数方式应用。

aws-step-functions

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

红移中的 PERCENTILE_CONT()

我正在触发一个使用 PERCENTILE_CONT() 函数的查询,如下所示:

select .....
       PERCENTILE_CONT(0.90) within group (order by END_DATE-START_DATE)
from ....
where .....
;
Run Code Online (Sandbox Code Playgroud)

现在,当我从 Oracle DB 中的 SQLDeveloper 触发该查询时,该查询完全可以正常工作,但由于某种原因,我需要使用 RedShift 数据库,当我在其中触发上述查询时,它会抛出如下错误:

ERROR: function percentile_cont(interval, numeric) does not exist
  Hint: No function matches the given name and argument types. You may need to add explicit type casts.`
Run Code Online (Sandbox Code Playgroud)

正如建议的那样,我尝试使用类型转换为 DECIMAL 和 INTEGER 类型,但出现了相同的错误。

我搜索了文档,但也无法从那里找到解决方案。有什么想法吗,为什么?

PS:无法放置标签 PERCENTILE_CONT,因为它的声誉较低。

sql function typecasting-operator amazon-redshift

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