Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 机器人分子是单元测试还是集成测试?_Android_Unit Testing_Robolectric - Fatal编程技术网

Android 机器人分子是单元测试还是集成测试?

Android 机器人分子是单元测试还是集成测试?,android,unit-testing,robolectric,Android,Unit Testing,Robolectric,我知道在Robolectric官方网站上说这个框架是用于单元测试的,但在所有样本上,Robolectric都用于测试视图。。。例如:Robolectric可以用来检查textview X的文本是否为dog,可以检查按钮是否可单击。。。但这不是单元测试。。。这是整合测试,我也可以用浓缩咖啡来做 如果robolectric真的是单元测试,我可以用它来测试viewmodel、repository和extensions 如果是单元测试,你能给我一个只使用Robolectric no Mockito的vi

我知道在Robolectric官方网站上说这个框架是用于单元测试的,但在所有样本上,Robolectric都用于测试视图。。。例如:Robolectric可以用来检查textview X的文本是否为dog,可以检查按钮是否可单击。。。但这不是单元测试。。。这是整合测试,我也可以用浓缩咖啡来做

如果robolectric真的是单元测试,我可以用它来测试viewmodel、repository和extensions


如果是单元测试,你能给我一个只使用Robolectric no Mockito的viewmodel测试示例吗?

几年前,我在他们的网站上报道了一些解释 我在这本旧书中写道

Robolectric的另一种方法是使用模拟框架,如 Mockito或模拟Android SDK。虽然这是一个有效的 在这种方法中,它通常会产生本质上相反的测试 应用程序代码的实现。机器人电气允许进行测试 更接近黑盒测试的样式,使测试更加 对于重构和允许测试集中于 应用程序的行为,而不是Android的实现。 如果您愿意,您仍然可以使用模拟框架和Robolectric 喜欢

要理解Roboelectric的概念,需要理解什么是阴影对象,它模仿Android类。当您需要测试Android实现时,可能很难执行Junit测试,因为有很多Android组件:视图、意图、捆绑包、片段(Roboelectric可以测试其中的一些)。此外,如果您的代码是紧密耦合的,则很难运行UI测试,这些测试需要通过emulator运行,而且速度非常慢,尽管经常需要。Junit测试速度更快,不需要模拟器。Roboelectric帮助您测试特定的Android组件,而无需使用模拟器

您询问的viewModel示例实际上是一个一般性问题,因为ViewModels可能真的不同。通常,viewModel包含视图的业务逻辑,而通常没有对视图的引用,因此应该可以使用Mockito进行测试。在Stackoverflow中,我们不会就使用哪种框架发表意见,因此我不会做出任何判断。因此,无论什么样的Roboelectric示例都应该说明如何在viewModel中使用它,或者需要什么位置,视图可能是更好的位置。请注意,RoboeElectric作为每个框架都有其优缺点,但我们无法在StackOverflow上讨论这一点,互联网和您的玩具项目的研究将为您提供帮助


另外,当您进行Junit测试时,您需要单独进行测试,因此该类有一个相对值,只要有业务逻辑来测试您的SUT,即测试中的系统。

几年前,我在他们的网站上报告了一些解释 我在这本旧书中写道

Robolectric的另一种方法是使用模拟框架,如 Mockito或模拟Android SDK。虽然这是一个有效的 在这种方法中,它通常会产生本质上相反的测试 应用程序代码的实现。机器人电气允许进行测试 更接近黑盒测试的样式,使测试更加 对于重构和允许测试集中于 应用程序的行为,而不是Android的实现。 如果您愿意,您仍然可以使用模拟框架和Robolectric 喜欢

要理解Roboelectric的概念,需要理解什么是阴影对象,它模仿Android类。当您需要测试Android实现时,可能很难执行Junit测试,因为有很多Android组件:视图、意图、捆绑包、片段(Roboelectric可以测试其中的一些)。此外,如果您的代码是紧密耦合的,则很难运行UI测试,这些测试需要通过emulator运行,而且速度非常慢,尽管经常需要。Junit测试速度更快,不需要模拟器。Roboelectric帮助您测试特定的Android组件,而无需使用模拟器

您询问的viewModel示例实际上是一个一般性问题,因为ViewModels可能真的不同。通常,viewModel包含视图的业务逻辑,而通常没有对视图的引用,因此应该可以使用Mockito进行测试。在Stackoverflow中,我们不会就使用哪种框架发表意见,因此我不会做出任何判断。因此,无论什么样的Roboelectric示例都应该说明如何在viewModel中使用它,或者需要什么位置,视图可能是更好的位置。请注意,RoboeElectric作为每个框架都有其优缺点,但我们无法在StackOverflow上讨论这一点,互联网和您的玩具项目的研究将为您提供帮助

另外,当您进行Junit测试时,您需要单独进行测试,因此该类有一个相对的值,只要有业务逻辑来测试您的SUT、syste和SUT
我在测试中。

我的困惑是因为Robolectric官方网站上说不需要Mockito这样的模拟框架,我只能使用Robolectric,在一个非常干净的MVVM拱门中,我的viewmodel没有任何视图。。。我可以使用Mockito进行测试,也可以只使用junit使用Koin进行测试。。。然后Robolectric仅用于android访问?例如:如果我的应用程序在视图上有逻辑,那么我可以使用Robolectric在视图上测试此逻辑,因为Robolectric可以访问android框架,但是如果我使用MVVM,那么就不需要Robolectric进行单元测试。。。我想我明白了。。。或者,如果您使用一些CI工具,如jacoco等,Roboelectric的设置可能会很复杂。如果您的体系结构是干净的,例如使用包装RXJava用例的LiveData,那么您确实需要一个简单的模拟库。如果你的代码更加耦合或者非常重要,你是TDD的粉丝,测试驱动架构,Roboelectric变得非常有趣。是的,你明白我的意思,我不建议你测试Android组件,即使你的viewModel中有Roboelectric,因为MVVM中的viewModel将视图与业务逻辑分离,出于一些架构方面的原因,更容易的测试就是其中之一。希望我能回答你,但在建筑界,一切都可能变得主观,这不是stackoverflow的本质,当你解决具体问题时,而不是广泛的讨论。我的困惑是因为在Robolectric官方网站上说,不需要Mockito这样的模拟框架,我只能使用Robolectric,在一个非常干净的MVVM arch中,我的viewmodel没有任何视图。。。我可以使用Mockito进行测试,也可以只使用junit使用Koin进行测试。。。然后Robolectric仅用于android访问?例如:如果我的应用程序在视图上有逻辑,那么我可以使用Robolectric在视图上测试此逻辑,因为Robolectric可以访问android框架,但是如果我使用MVVM,那么就不需要Robolectric进行单元测试。。。我想我明白了。。。或者,如果您使用一些CI工具,如jacoco等,Roboelectric的设置可能会很复杂。如果您的体系结构是干净的,例如使用包装RXJava用例的LiveData,那么您确实需要一个简单的模拟库。如果你的代码更加耦合或者非常重要,你是TDD的粉丝,测试驱动架构,Roboelectric变得非常有趣。是的,你明白我的意思,我不建议你测试Android组件,即使你的viewModel中有Roboelectric,因为MVVM中的viewModel将视图与业务逻辑分离,出于一些架构方面的原因,更容易的测试就是其中之一。希望我能回答你,但在建筑界,一切都可能变得主观,这不是stackoverflow的本质,当你解决具体问题时,不是广泛的讨论。