我正在尝试验证页面是否包含两种可能的文本之一。我知道如何断言主体包含某些信息,但是我不知道如何在断言中包含“或”或“或”结构。谁能帮我吗?
下面您将看到我用来断言该页面包含特定文本的常规代码。 如果有人可以告诉我如何断言该页面包含“ Text1”或“ Text2”,那将是巨大的帮助。
Button btnUpdateFamily;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.self_mem_details_family_info,
container, false);
return v;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
btnUpdateFamily = view.findViewById(R.id.btnUpdateFamily);
btnUpdateFamily.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Button Clicked",
Toast.LENGTH_SHORT).show();
}
});
}
谢谢!
答案 0 :(得分:4)
您的帖子并不确定,因为您要的是either-or
,还需要and
。我猜你的意思是“我如何才能检查该页面仅包含两个文本之一:当它包含Text1时,它不应该包含Text2”。
仅使用binary OR Operator就无法到达目的地,因为true | true
等于true
。
XOR Operator来了。
对于
bool
操作数,^
计算其操作数的逻辑异或。也就是说,当且仅当其操作数正好是true
时,结果才是true
。
尝试这样的事情:
Assert.IsTrue(body.Text.Contains("TEXT1") ^ body.Text.Contains("TEXT2"));
答案 1 :(得分:0)
您可以执行所需的检查并将每个结果存储在变量中,然后对变量执行断言。
var text1Exists = body.Text.Contains("TEXT1");
var text2Exists = body.Text.Contains("TEXT2");
Assert.IsTrue(text1Exists && text2Exists);