小编Naf*_*Kay的帖子

在对象上只模拟一个方法

我熟悉其他语言中的其他模拟库,例如Java中的Mockito,但Python的mock库让我的生活混乱.

我有以下课程,我想测试.

class MyClassUnderTest(object):

    def submethod(self, *args):
       do_dangerous_things()

    def main_method(self):
       self.submethod("Nothing.")
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我想确保submethodmain_method执行时调用它,并使用正确的参数调用它.我不想submethod跑,因为它做危险的事情.

我完全不确定如何开始这个.Mock的文档非常难以理解,我不确定甚至可以模拟甚至如何模拟它.

如何submethodmain_method单独保留功能的同时模拟功能?

python mocking python-mock

25
推荐指数
1
解决办法
8200
查看次数

我如何做像GitHub那样令人敬畏的无刷页面更改?

GitHub 似乎在做一些令人难以置信的事情:动画页面更改而不会破坏状态.地址栏会更改,但页面不会刷新,我会将动画设置为下一个视图.

例如,点击此URL:as3logback /然后点击此URL:as3logback/lib

他们是如何在魔鬼中做到的!?!这太酷了!他们是使用某种框架还是服务器端?

html https http github

24
推荐指数
3
解决办法
4444
查看次数

使用PowerMock和Mockito模拟静态方法

我正在尝试验证java.sql.DriverManager.getConnection使用JUnit,Mockito和PowerMock 的调用.

这是我的测试用例:

@RunWith(PowerMockRunner.class)
@PrepareForTest(DriverManager.class)
public class MySQLDatabaseConnectionFactoryTest {

    private ConfigurationService configurationService;
    private MySQLDatabaseConnectionFactory reference;

    @Before
    public void setUp() throws Exception {
        this.reference = new MySQLDatabaseConnectionFactory();
    }

    @Test
    public void testGetConnection() throws SQLException {
//      setup
        Connection connection = mock(Connection.class);

        PowerMockito.mockStatic(DriverManager.class);

        when(DriverManager.getConnection(anyString(), anyString(), anyString())).thenReturn(connection);

//      run
        this.reference.getConnection();

//      verify
        PowerMockito.verifyStatic();
        DriverManager.getConnection("jdbc:mysql://myhost:1111/database", "username", "password");
    }

}
Run Code Online (Sandbox Code Playgroud)

这是测试中的代码:

public class MySQLDatabaseConnectionFactory implements
        DatabaseConnectionFactory {

    @Override
    public Connection getConnection(IApplicationInstance appInstance) {         
        try {
            return DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s", 
                    MYSQL_HOST, MYSQL_PORT, MYSQL_DATABASE), MYSQL_USERNAME, MYSQL_PASSWORD);
        } …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing mockito powermock

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

将int转换为布尔值

有没有办法可以将int/short值转换为布尔值?我收到的JSON看起来像这样:

{ is_user: "0", is_guest: "0" }
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其序列化为如下所示的类型:

class UserInfo {

    @SerializedName("is_user")
    private boolean isUser;

    @SerializedName("is_guest")
    private boolean isGuest;

    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

如何让Gson将这些int/short字段转换为布尔值?

java json gson

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

确定请求的内容类型?

我想写一个Django视图,根据请求提供变体内容.例如,对于"text/xml",提供XML,"text/json",提供JSON等.有没有办法从请求对象中确定这个?像这样的东西会很棒:

def process(request):
    if request.type == "text/xml":
        pass
    elif request.type == "text/json":
        pass
    else:
        pass
Run Code Online (Sandbox Code Playgroud)

这是否有财产HttpRequest

django django-views

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

跨索引获取数组字段的明确聚合

我正在尝试学习MongoDB以及它对我的分析有何用处.我只是在他们的网站上使用JavaScript控制台,并创建了以下项目:

{"title": "Cool", "_id": {"$oid": "503e4dc0cc93742e0d0ccad3"}, "tags": ["twenty", "sixty"]}
{"title": "Other", "_id": {"$oid": "503e4e5bcc93742e0d0ccad4"}, "tags": ["ten", "thirty"]}
{"title": "Ouch", "_id": {"$oid": "503e4e72cc93742e0d0ccad5"}, "tags": ["twenty", "seventy"]}
{"title": "Final", "_id": {"$oid": "503e4e72cc93742e0d0ccad6"}, "tags": ["sixty", "seventy"]}
Run Code Online (Sandbox Code Playgroud)

我想做的是查询,所以我得到了所有这些对象的唯一标签列表.结果应如下所示:

["ten", "twenty", "thirty", "sixty", "seventy"]
Run Code Online (Sandbox Code Playgroud)

我如何查询?我正在努力distinct(),但即使查询,呼叫总是失败.

mongodb

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

Maven/Eclipse与Vagrant

我正在尝试转换使用Vagrant构建Maven(以及Gradle和Ant ......很复杂)的Java项目.我已经有大部分木偶配置的机器,并具有便携,破坏发展环境,不必在我自己的个人计算机上安装和配置所有这些软件的它的真棒.

我目前面临的问题是:如何在Eclipse中解析我的类路径?我的构建工具(Maven,Gradle,Ant)安装在Vagrant盒子上,他们将存档下载到本地机器/home/vagrant/.m2等.

这就是我可以在流浪机器做很容易:

  1. 使用Vagrant机器上安装的Ant,Maven和Gradle构建工具构建我的整个软件项目.
  2. 在我的Vagrant机器上安装的应用程序服务器上运行我的整个软件项目.
  3. 通过转发的HTTP端口访问应用程序服务器并与之交互.

这是我非常遗憾的:

  1. 使用Eclipse 开发并使用存在于Vagrant VM内的Maven/Gradle类路径.
  2. 使用Eclipse 调试/运行,启动Vagrant容器内的应用程序以利用该环境而不是我的主机环境.

是否有Eclipse插件允许我使用m2eclipse的远程类路径?我可以在Vagrant机器上远程运行/调试Java可执行文件吗?

如果"底线™"是我必须在我的本地机器上安装Maven和Gradle以及Vagrant盒子,那么它就是它的本质; 否则,我真的更喜欢让我的本地机器尽可能轻巧.

目标

在Vagrant机器内运行我的整个软件开发周期,使Eclipse 成为我本地机器的唯一依赖.

java eclipse maven vagrant

16
推荐指数
1
解决办法
4558
查看次数

在ListView中创建简单的字母滚动?

我想在最新的音乐应用程序中模拟功能,即弹出的漂亮的小光标,允许人们快速滚动到他们正在寻找的艺术家/专辑/曲目:

定期滚动

有没有一种方法可以ListView在Android SDK中启用这样的功能?

android listview android-layout

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

圆角周围的盒子阴影?

我正在使用Twitter的Bootstrap库快速拼凑原型.

这是我的布局在HTML中的样子:

<div class="navbar-messages container">
    <div class="alert alert-info fade in">
        <button class="close" data-dismiss="alert">&times;</button>
        <strong>Awesomeness!</strong> You're pretty cool.
    </div>
    <div class="alert alert-error fade in">
        <button class="close" data-dismiss="alert">&times;</button>
        <strong>Awesomeness!</strong> You're pretty cool.
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的LESS的样子:

div.navbar div.navbar-messages {
    .drop-shadow(1px 1px 10px 1px rgba(0, 0, 0, 0.2));

    div.alert {
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;

        margin-bottom: 0px;

        &:last-child {
            -webkit-border-bottom-right-radius: 4px;
            -webkit-border-bottom-left-radius: 4px;
            -moz-border-radius-bottomright: 4px;
            -moz-border-radius-bottomleft: 4px;
            border-bottom-right-radius: 4px;
            border-bottom-left-radius: 4px;
        }
    }
}

.drop-shadow(@params) {
    -moz-box-shadow: @params;
    -webkit-box-shadow: @params;
    box-shadow: @params;
} …
Run Code Online (Sandbox Code Playgroud)

html css css3 less

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

从Maven中的JAXB类型生成XSD架构?

我试图基本上使用Maven插件从我在JAXB中注释的模型类生成XSD模式.这是我的POM中的相关代码:

<plugin>
    <groupId>com.sun.tools.jxc.maven2</groupId>
    <artifactId>maven-jaxb-schemagen-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>

    <configuration>
        <project>${project}</project>
        <destdir>${project.build.directory}/schemas</destdir>
        <srcdir>${project.build.sourceDirectory}/com/floodstream/wowza/mastercontrol/model</srcdir>
        <verbose>true</verbose>
    </configuration>

    <dependencies>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
            <version>2.2</version>
        </dependency>
    </dependencies>
</plugin>

<!-- other stuff omitted for brevity -->

<pluginRepository>
    <id>maven-repository.dev.java.net</id>
    <name>Java.net Maven 2 Repository</name>
    <url>http://download.java.net/maven/2</url>
</pluginRepository>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org/apache/tools/ant/taskdefs/Javac
org.apache.tools.ant.taskdefs.Javac
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: org/apache/tools/ant/taskdefs/Javac
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at …
Run Code Online (Sandbox Code Playgroud)

jaxb maven schemagen

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