Android:如何确定等待线程?

发布于 2024-12-07 20:54:54 字数 85 浏览 0 评论 0原文

想要为 android 库项目创建一个单元测试。我需要测试给定线程是否正在等待(调用了 synchronized object.wait())。可以确定吗?

Want to create a unit test for android library project. I need to test if the given thread is waiting (synchronized object.wait() was called) or not. Is it possible to determine it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

述情 2024-12-14 20:54:54

编写单元测试以查看方法是否被调用的常见方法是创建一个模拟对象,该对象重写要检查的方法并在调用时设置标志。例如:

public class MockYourClass extends YourClass {
    public boolean mWaitWasCalled = false;
    @Override
    public void wait() {
        mWaitWasCalled = true;
        super.wait();
   }
}

用您的类替换此模拟,然后检查 assertTrue(mockClass.mWaitWasCalled)

给定一个随机对象,无法判断线程是否正在等待它。

A common way to write unit tests to see if a method is called is to create a mock object that overrides the method to check and sets a flag when it is called. For example:

public class MockYourClass extends YourClass {
    public boolean mWaitWasCalled = false;
    @Override
    public void wait() {
        mWaitWasCalled = true;
        super.wait();
   }
}

Substitute the use of your class for this mock and then check that assertTrue(mockClass.mWaitWasCalled)

Given a random object, there's no way to tell if a thread is waiting on it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文