小编Luc*_*ner的帖子

Unittest的assertEqual和iterables - 只检查内容

在unittest中是否有一个"体面"的方法来检查两个可迭代对象的内容是否相等?我使用了很多元组,列表和numpy数组,我通常只想测试内容而不是类型.目前我只是在铸造这种类型:

self.assertEqual (tuple (self.numpy_data), tuple (self.reference_list))
Run Code Online (Sandbox Code Playgroud)

我刚才用这个列表理解:

[self.assertEqual (*x) for x in zip(self.numpy_data, self.reference_list)]
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案看起来有点不如类型转换,因为它只会在单个值失败时打印单个值,并且对于不同长度的引用和数据也不会失败(由于zip函数).

python unit-testing assert iterable

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

如何在HTTP响应体(使用Spark)中发送QR码的PNG?

我想生成QR码图像,将其转换为PNG并将其作为HTTP响应返回给我的客户端.

为了生成QR码我使用ZXing.我已经通过使用FileOutputStreamwith 编写了测试转换部分MatrixToImageWriter.writeToStream(...).这就像一个魅力.

我目前使用的Web框架是Spark(版本1.1.1).handle(...)-method 的返回被设置为响应主体.我在这做错了什么?

使用当前的解决方案,我The image "http://localhost:4567/qrcode" cannot be displayed because it contains errors在使用Firefox执行GET请求时获得.

import java.io.ByteArrayOutputStream;
import java.io.OutputStream;

import static spark.Spark.get;
import spark.Request;
import spark.Response;
import spark.Route;

import com.google.gson.Gson;

import com.google.common.io.BaseEncoding;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;

public class App {
    public static void main(String[] args) {
        get(new Route("/qrcode") {

            @Override
            public Object handle(Request request, Response response) {
                // Test data
                QrData data = new QrData("test");

                // …
Run Code Online (Sandbox Code Playgroud)

java png http zxing

8
推荐指数
2
解决办法
6626
查看次数

为什么可以将int []转换为Object,而不是转换为Object []?

这样可行:

int i;
Object a  = (Object) i;
int[] t;
Object b = (Object) t;
String[] s;
Object[] t = (Object[]) s;
Run Code Online (Sandbox Code Playgroud)

但这不是:

int[] t;
Object[] z = (Object[]) t;
Run Code Online (Sandbox Code Playgroud)

总而言之,我得到了第一部分(拳击),但我发现第二部分不起作用非常不直观.是否有一个特定的原因(除了继承自Object的String和int不继承自Object)?

编辑:

为了优化我的问题,这也有效:

int a = 2;
int b = 3;
int c = 4;
int d = 2;
Object[] o = new Object[] {a,b,c,d};
Run Code Online (Sandbox Code Playgroud)

但是接下来没有:

int[] t = (int[]) o;
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是你遇到了与String相同的问题:

String sa = "a";
String sb = "b";
String sc = "c";
String sd = "d";
Object[] so …
Run Code Online (Sandbox Code Playgroud)

java arrays primitive casting

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

标签 统计

java ×2

arrays ×1

assert ×1

casting ×1

http ×1

iterable ×1

png ×1

primitive ×1

python ×1

unit-testing ×1

zxing ×1