目前,我正在开发一个应用程序,该应用程序获取音频流(原始编码字节)并对其应用一些转换(重新采样、将立体声转换为单声道等)。我已经使用 opus 编解码器实现了对原始字节的编码,JNI但我有一个小问题:
有没有办法收听保存到文件中的 opus 编码流?我知道,如果我添加一些文件头并执行一些附加操作,我应该能够将其保存为 OGG 文件,但我不想浪费时间实现功能只是为了在测试中收听音频。
理想情况下,我想找到一个能够播放此类流的工具,就像 audacity 正在播放的那样RAW(当然在添加编码参数之后)。
谢谢。
我正在尝试对我的服务类进行单元测试,它看起来与此类似:
@Service
public class SomeQueryService {
private final SomeRepository repository;
public SomeQueryService(SomeRepository repository) {
this.repository = repository;
}
public void doSomething() {
// code doing some magic
}
}
Run Code Online (Sandbox Code Playgroud)
SomeRepository是简单的存储库接口扩展JpaRepository接口。
我想做的是对该服务进行单元测试以验证它是否正常工作。
我不想使用mockito来模拟存储库行为,我想要一些内存中的实现(在列表或地图上)来模仿数据库行为。
Spring提供了这样的假实现吗?
我想避免自己对此类存储库进行存根实现,因为我将在许多其他地方使用此类测试。
我正在尝试重构现有的旧代码,我注意到我有很多地方都采用以下模式:
if (condition) {
// lot of code
} else {
throw new SomeException();
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种快速的方法来翻转if-else构造以轻松地将当前形式重构为这样的形式:
if(!condition) throw new SomeException();
// lot of code
Run Code Online (Sandbox Code Playgroud)
我想在功能开始时删除不必要的嵌套并进行检查。
我正在尝试编写一个看起来像这样的遗留代码的测试:
public class TestedClass {
private A a = StaticFactory.createA();
private B b = StaticFactory.createB();
// No default constructor
// code using A and B classes
}
Run Code Online (Sandbox Code Playgroud)
至于我对Mockito的理解,我知道我不能模拟静态方法,但是我知道我可以使用一个小技巧并将这个对象的创建外部化为这样的包私有方法:
public class TestedClass {
private A a;
private B b;
TestedClass() {
a = createA();
b = createB();
}
A createA() {
return StaticFactory.createA();
}
B createB() {
return StaticFactory.createB();
}
// code using A and B classes
}
Run Code Online (Sandbox Code Playgroud)
但是使用这种结构我无法创建间谍TestedClass,它必须已经是间谍才能使用doReturn(..)构造,所以这样的测试不会起作用:
public class TestedClassTest {
TestedClass testedClass;
A mockA; …Run Code Online (Sandbox Code Playgroud) 内容流通过我想在矩形中显示“连接我们”文本。
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);
contentStream.showText("Connect with Us:");
contentStream.endText();
contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();
Run Code Online (Sandbox Code Playgroud)
我尝试使用此代码获取矩形中的文本,但没有在矩形中看到文本。
我正在创建表示图中边的简单通用结构,并且我希望构造函数切换参数,因此较低的将是第一个。
pub type Index = u16;
pub type Cost = u32;
pub struct Edge<T> {
first: Index,
second: Index,
weight: T,
}
impl<T> Edge<T> {
pub fn new(first: Index, second: Index, weight: T) -> Self {
return if second > first {
Edge { second, first, weight }
} else {
Edge { first, second, weight }
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我无法使它工作,因为我的测试导致错误。
#[test]
fn should_initialize_with_lover_value_first() {
// given
let lower: Index = 234;
let high: Index = 444;
let cost: Cost …Run Code Online (Sandbox Code Playgroud)