小编Gya*_*ngh的帖子

使用 Mockito 验证静态方法调用

我试图在测试中验证是否调用了静态方法。我正在使用 Mockito 来达到这个目的。

这个问题与此类似。但是,最高票数回复中建议的解决方案不再适用,因为 MockedStatic 验证方法已被弃用。

try (MockedStatic<SomePublicClass> dummyStatic = Mockito.mockStatic(SomePublicClass.class)) {
dummyStatic.when(() -> SomePublicClass.myPublicStaticFunc(anyInt()))
           .thenReturn(5);
// when
System.out.println(SomePublicClass.myPublicStaticFunc(7));
//then
dummyStatic.verify(
        times(1), 
        () -> SomePublicClass.myPublicStaticFunc(anyInt())
);
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是调用

verify(dummyStatic).myPublicStaticFunc(anyInt);
Run Code Online (Sandbox Code Playgroud)

但是,它抱怨类型 MockedStatic 的方法 myPublicStaticFunc(int) 未定义。

我有什么选择,或者我错过了什么。另外,我知道我可以使用 PowerMock 尝试此操作,但目前,我尝试仅使用 Mockito 来实现此操作。

java testing static-methods unit-testing mockito

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

用于rss的xml生成中的命名空间前缀和cdata标记在Ruby on Rails中提供

我需要为一个看起来大致如下的feed生成一个xml: -

    <?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
    <item>
        <g:id><![CDATA[id]]></g:id>
        <title><![CDATA[Product Name]]></title>
        <description><![CDATA[This should be a relatively detailed description with as little formatting as possible.]]></description>
        <g:brand>Brand X</g:brand>
        <g:sale_id>new</g:sale_id>
    </item>
    <item>
        Next product...
    </item>
</channel>
</rss>
Run Code Online (Sandbox Code Playgroud)

我的代码目前看起来像这样: -

xml=Builder::XmlMarkup.new(:indent => 3)
xml.instruct!
xml.rss("version" => "2.0" ,  "xmlns:g" => "http://base.google.com/ns/1.0" , "xmlns:atom" => "http://www.w3.org/2005/Atom"){
xml.channel{
# remove xml.namespace = xml.namespace_definitions.find{|ns|ns.prefix=="atom"}
sale_products.each do |sp|
  sid = (products_info[sp.product_id]["sale_id"]).to_s()
  xml.item {
    #xml.id{ |xml| xml.cdata!(products_info[sp.product_id].own_id) }
    #xml.g :id,{ xml.cdata!("sdaf") }
    xml.product_title{ |xml| xml.cdata!(products_info[sp.product_id].name) …
Run Code Online (Sandbox Code Playgroud)

ruby xml rss ruby-on-rails nokogiri

8
推荐指数
1
解决办法
3659
查看次数

查询在跟踪中显示的持续时间值大于查询自身运行时的值

sql server探查器跟踪中的持续时间值显示的查询值大于我运行相同查询并查看查询执行持续时间的值.为什么会这样,或者我错过的任何其他事情?

database sql-server performance trace

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

在redshift中将bigint数据类型转换为时间戳(以及随后的日期)

我需要将bigint列中存储的值转换为日期字段。转换的第一步包括将其转换为时间戳,然后使用TRUNC方法将该列转换为日期值。但是,将bigint值转换为时间戳时,我的查询失败。我得到的错误是:-

Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳;

我现在尝试的查询是这样的:

从事件限制1中选择ts :: timestamp;

amazon-redshift

5
推荐指数
0
解决办法
2193
查看次数

从特里构建火焰图

我在定期生成的特里中有一些统计数据。我想根据两次尝试之间的差异生成火焰图。我怎么做?

t = pygtrie.StringTrie(separator=os.path.sep)

for dirpath, unused_dirnames, filenames in os.walk(ROOT_DIR):
    for filename in filenames:
        filename = os.path.join(dirpath, filename)
        try:
            filestat = os.stat(filename)
        except OSError:
            continue
        if stat.S_IFMT(filestat.st_mode) == stat.S_IFREG:
            t[filename] = filestat.st_size
Run Code Online (Sandbox Code Playgroud)

python algorithm trie flamegraph

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

覆盖rails update_all方法

我需要覆盖rails(活动记录)update_all方法,以便它始终更新updated_at字段.我该如何实现这一目标?

activerecord ruby-on-rails ruby-on-rails-3

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