每个人都建议遵循MVP或MVVM模式以保持代码的可读性和可测试性。现在我有疑问。现在,我正在学习单元测试,并以一种正式的方式编写代码。不使用任何模式。现在我的问题是,我可以像下面那样测试我的代码吗?
我的主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public boolean testMethod(int value){
return value== 5?true:false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试课:
@RunWith(MockitoJUnitRunner.class)
public class ExampleUnitTest {
MainActivity mainActivity = new MainActivity();
@Test
public void testMethod(){
boolean result = mainActivity.testMethod(5);
assertEquals(true,result);
}
}
Run Code Online (Sandbox Code Playgroud)
在运行测试时,我没有收到任何错误或问题。那么这是正确的测试方法吗?还是如果我遵循这种方法会发生什么?我也开始将代码迁移到MVP模式,但是我想清除我的疑问。请让我知道为什么我不遵循单元测试的正式编码的原因。
我只使用最新的独立空手道 jar 在配置了 JRE 的 docker 容器上测试我的 API,我没有任何 Java 代码。
目前在我的一项功能上,我有这个 : read('file.json')
,并且当资源文件与功能文件位于同一目录时它可以正常工作。我知道建议这样做。
但是,如果我还想拥有一个包含所有资源文件的中央目录以避免重复,则即使使用此命令也不起作用:
read('classpath:directory/file.json')
错误如下:
“[com.intuit.karate.exception.KarateException:无法找到或读取文件:xxx,前缀:CLASSPATH”
我什至尝试在运行 jar 时在命令行上设置类路径但没有成功:
java -cp $CLASSPATH . -jar ~/karate.jar
我的问题:是否可以使用独立 jar 在空手道上设置前缀,以便能够轻松读取其他目录中的任何文件?
Azure应用程序见解或日志分析的用例是什么?
我正在使用APIM和Azure函数,并希望对请求执行日志记录。哪一种是最合适的,应用程序见解或日志分析?
https://docs.microsoft.com/zh-CN/azure/azure-monitor/overview
更新资料
特别是,有关用于APIM的Azure应用程序见解与日志分析的任何信息?
azure azure-application-insights azure-functions azure-log-analytics
我阅读了 Spring Boot 文档,并从该文档中了解了有关 Spring Session 的知识。
但我发现HttpSession类无需在代码中添加任何依赖项即可工作。
所以...
我猜测 Spring Boot 默认提供会话存储。有人知道这件事吗?我查看了 spring 文档但找不到它。
在将应用程序上传到 Google Play 之前,我使用 Firebase 测试实验室对其进行了测试。
从屏幕截图和视频来看,看起来就像真实的广告是从 admob 显示然后点击的。
现在我知道您可以设置测试设备来显示测试广告,但我找不到 firebase 测试设备的任何 id,或者我可以在代码中以某种方式识别这是一个机器人测试,以便我可以阻止真正的广告吗?
另外我想知道谷歌播放预发布报告测试是否也有同样的问题?
我正在尝试从 Google Firebase 测试实验室设备下载文件。这些文件是通过运行仪器测试生成的。文件是截图。我需要下载屏幕截图,因为后续运行的测试会将屏幕与这些屏幕截图进行比较。因此,屏幕截图是视觉变化检测的基线。
我尝试寻找一种方法来连接到 Firebase 测试实验室设备的设备文件资源管理器。但似乎没有办法远程访问它。
由于Firebase 测试实验室会在测试后清理设备,因此我认为我可以实现我想要做的唯一方法是向测试添加代码以将文件推送到某个地方。
我想将文件推送到的一个地方是存储测试结果的 Google Cloud 存储桶。从下面的文档来看,这似乎是存储桶的预期用途:
测试实验室完成对您的应用的测试后,您可以在 Firebase 控制台或项目中的 Google Cloud 存储分区中查看测试结果。您还可以在上面显示的 shell 命令中添加 gsutil 命令,以将测试结果数据复制到本地计算机。要了解更多信息,请参阅分析 Firebase 测试实验室结果。( Firebase 文档)
对于这种方法,我的检测测试将如何将文件推送到存储桶?它如何知道使用哪个存储桶?执行文件传输的 API 是什么?
我可以采取的另一种方法是从 Firebase 测试实验室仪器测试 中截取屏幕截图,这会将屏幕截图放入存储桶中。但我看到了两个潜在的问题。
第一个问题是截屏库的截屏可能与从UiAutomation.takeScreenshot()截取的截屏不同。换句话说,基线屏幕截图是使用屏幕截图库拍摄的,但在后续运行中,我将使用 UiAutomation.takeScreenshot() 拍摄屏幕截图并进行比较。由于库不同,它们的屏幕截图可能会有所不同。一个可能的解决方案是使用屏幕截图库拍摄两个屏幕截图。但随后我需要弄清楚如何将屏幕截图读回内存,以便我可以执行比较操作。今天我将它们作为Bitmaps读入。
对于这种方法,我的检测测试将如何将屏幕截图库的屏幕截图加载为Bitmaps?
第二个问题是弄清楚如何将屏幕截图从存储桶下载到我的本地计算机。存储桶的用户界面没有下载按钮。它只有一个上传按钮:
对于这种方法,我如何将文件从存储桶下载到我的本地计算机,以便我可以将它们添加到我的检测测试可以读取的资源目录中?
android ×3
firebase ×2
admob ×1
azure ×1
java ×1
junit ×1
karate ×1
spring ×1
spring-boot ×1
unit-testing ×1