小编Jos*_*h J的帖子

如果iterable不为空,有没有办法检查Python unittest断言?

在向服务提交查询后,我得到一个字典/列表,我想确保它不是空的.我在Python 2.7上.

我很惊讶我没有看到类实例的任何assertEmpty方法unittest.TestCase.

现有的替代品如:

self.assertTrue(bool(d))
Run Code Online (Sandbox Code Playgroud)

self.assertNotEqual(d,{})
Run Code Online (Sandbox Code Playgroud)

self.assertGreater(len(d),0)
Run Code Online (Sandbox Code Playgroud)

只是看起来不对劲.

Python unittest框架中是否缺少这种方法?如果是,那么断言迭代不为空的最pythonic方法是什么?

python unit-testing assertions python-2.7 python-unittest

55
推荐指数
3
解决办法
4万
查看次数

JMSSerializer独立 - 注释不存在,或者无法自动加载

我试图使用JMSSerializer作为一个独立的库来将API的JSON响应映射到我的模型类,并且遇到了一些问题.

执行以下代码会导致异常:

<?php
require dirname(__DIR__) . '/vendor/autoload.php';

use JMS\Serializer\Annotation AS JMS;

class Trii {
    /**
     * User ID for this session
     * @JMS\SerializedName("userID")
     * @JMS\Annotation(getter="getUserId")
     * @JMS\Type("string")
     * @var string
     */
    private $userId;

    public function getUserId() {
        return $this->userId;
    }

    public function setUserId($userId) {
        $this->userId = $userId;
    }
}

$serializer = \JMS\Serializer\SerializerBuilder::create()->setDebug(true)->build();
$object = $serializer->deserialize('{"userID":"Trii"}', 'Trii', 'json');
var_dump($object);
?>
Run Code Online (Sandbox Code Playgroud)

这是例外

Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The annotation "@JMS\Serializer\Annotation\SerializedName" in property Trii::$userId does not exist, or could not be auto-loaded.
Run Code Online (Sandbox Code Playgroud)

我通过composer为项目安装了以下库

{
    "require": …
Run Code Online (Sandbox Code Playgroud)

php jmsserializerbundle

36
推荐指数
2
解决办法
2万
查看次数

如何手动描述java @RequestBody Map <String,String>的示例输入?

我正在设计一个api,其中一个POST方法采用Map<String, String>任何键值对.

@RequestMapping(value = "/start", method = RequestMethod.POST)
public void startProcess(
    @ApiParam(examples = @Example(value = {
        @ExampleProperty(
            mediaType="application/json",
            value = "{\"userId\":\"1234\",\"userName\":\"JoshJ\"}"
        )
    }))
    @RequestBody(required = false) Map<String, String> fields) {
    // .. does stuff
}
Run Code Online (Sandbox Code Playgroud)

我想提供一个示例输入,fields但我似乎无法让它在swagger输出中呈现.这不是正确的使用方法@Example吗?

java swagger spring-boot springfox

11
推荐指数
2
解决办法
4868
查看次数

如何找到 Google 照片库的实际大小?

我正在研究将 Google Photos 库下载并存档到离线存储介质上的方法。在下载之前,我想计算存储照片库需要多少媒体,但我所能得到的只是用户的照片存储配额,而不是他们的 Google 照片库的实际大小。

我的理解是,配额是指Google用户的照片存储量相对于Google为Gmail、照片和其他服务提供的15GB免费存储空间的计算量。需要明确的是,当我尝试计算下载时 Google 照片库的实际大小时,该配额数字没有帮助。

有谁知道如何获取要下载的库的实际大小?

storage picasa google-photos

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

Mockito @Mock 没有使用构造函数注入正确注入命名模拟

我正在尝试使用 @Mock 将两个不同的对象注入我的测试类中。我需要它们是两个不同的对象,以便我可以when在每个对象上使用以产生不同的结果。我在 SO 上搜索的所有内容都指向这项工作,但是在运行下面的测试时 - 两个对象都是相同的模拟。

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

import com.ihm.pp.test.UnitTest;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;

/**
 * @author Josh Johnston
 */
@Category(UnitTest.class)
@RunWith(MockitoJUnitRunner.class)
public class ConstructorInjectionBug {

  @Mock
  private IBroken aBroken;

  @Mock
  private IBroken bBroken;

  @InjectMocks
  private UsesBroken usesBroken;

  @Test
  public void testBrokenConstructorInjection() {

    when(bBroken.getNumber()).thenReturn(2);
    assertEquals(2, usesBroken.getbBroken().getNumber());

    when(aBroken.getNumber()).thenReturn(1);
    assertEquals(1, usesBroken.getaBroken().getNumber());
  }
}

interface IBroken {
  int getNumber();
}

class UsesBroken {

  private IBroken aBroken;
  private IBroken …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mockito

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

如何确定共享时间轴项目的联系人?

我正在使用镜像api编写应用程序,我需要能够与特定用户共享在服务器端关联的图像.我通过我的玻璃器皿插入两个联系人,我可以分享图像给每个联系人.在服务器端,我得到的东西是这样的,但没有引用它共享的联系人ID?

{
 u'itemId': u'e2de58b4-e281-4518-8312-948159167be8', # id to image?
 u'userToken': u'6b037418-9a7d-4137-943e-2b857f960a80', # user who shared?
 u'operation': u'INSERT',
 u'collection': u'timeline',
 u'userActions': [{u'type': u'SHARE'}]
}
Run Code Online (Sandbox Code Playgroud)

google-mirror-api

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