当前位置: 首页 > 面试题库 >

用Java模拟URL

卢志业
2023-03-14
问题内容

我们要模拟的其中一个Java类中有一个URL对象,但这是最后一个类,因此不能。我们不想上一个级别,并模拟InputStream,因为这仍然会使我们留下未经测试的代码(我们有严格的测试覆盖率标准)。

我已经尝试过jMockIt的反射功能,但是我们在Mac上工作,并且Java代理处理程序存在我无法解决的问题。

那么,有没有不涉及在junit测试中使用真实URL的解决方案?


问题答案:

当我有一个因为是终结类(或用C#密封)而无法轻易嘲笑的类时,我通常的方法是在该类周围编写包装器,并在可能使用实际类的地方使用该包装器。然后,如有必要,我将模拟包装器类。



 类似资料:
  • 问题内容: 我对模拟还很陌生,并且我一直在尝试模拟实际内容(本质上仅在内存中创建一个虚拟文件),以便在任何时候都不会将任何数据写入磁盘。 我尝试过模拟文件和模拟尽可能多的属性的解决方案,然后还使用文件写入器/缓冲写入器将其写入,但是这些方法不能很好地工作,因为它们需要规范路径。有人找到了除此以外的解决方案,但我正在解决这个错误? 我一直在这样做: 任何想法或指导都将非常有帮助。在此之后的某个地方,

  • 问题内容: 请提供指针以帮助我模拟该java InputStream对象。这是我希望模拟的代码行: 问题答案:

  • 问题内容: 我对Java的座右铭是“仅仅因为Java具有静态块,并不意味着您应该使用它们。” 除了笑话,Java中还有许多使测试成为噩梦的技巧。我最讨厌的两个是匿名类和静态块。我们有很多使用静态块的遗留代码,这些是我们编写单元测试时最讨厌的点之一。我们的目标是能够以最小的代码更改为依赖于此静态初始化的类编写单元测试。 到目前为止,我对同事的建议是将静态块的主体移到私有的静态方法中并对其进行调用。然

  • 需要模拟面试的同学,可以私信我!博主只会Java#24届软开秋招面试经验大赏##我发现了面试通关密码##如何判断面试是否凉了#

  • 问题内容: 我想更改二进制文件的修改时间戳。最好的方法是什么? 打开和关闭文件会是一个不错的选择吗?(我需要一个解决方案,其中将在每个平台和JVM上更改时间戳的修改)。 问题答案: File类具有setLastModified方法。这就是ANT所做的。

  • 问题内容: 我正在寻找模拟在Java中短时间内按住键盘键的操作。我希望下面的代码按住A键5秒钟,但是只按一次它(在记事本中测试时会产生一个“ a”)。我是否需要使用其他东西,或者我在这里使用awt.Robot类错了吗? 问题答案: Thread.sleep()阻止当前线程(按住键的线程)执行。 如果希望它在给定的时间内按住键,也许应该在并行线程中运行它。 这是一个解决Thread.sleep()问