Imagem de fundo

Considere o seguinte código de testes na linguagem...

Atenção:


Algumas das questões seguintes fazem referência a um banco de dados relacional intitulado BOOKS, cujas tabelas e respectivas instâncias são exibidas a seguir. Essas questões referem-se às instâncias mostradas.


AUTOR


AutorID

AutorNome

1

2

3

Arthur Conan Doyle

Agatha Christie

Edgar Allan Poe


LIVRARIA


LivrariaID

LivrariaNome

1

2

3

4

Cultural

Travessia

Amazonas

Kremlin


LIVRO


LivroID

AutorID

Titulo

NumLivrarias

1

1

O Cão dos Baskervilles

NULL

2

1

As Aventuras de Sherlock Holmes

2

3

2

Assassinato no Expresso do Oriente

2

4

2

O Mistério dos Sete Relógios

3

5

3

Assassinatos na Rua Morgue

NULL


OFERTA


LivrariaID

LivroID

Preco

1

1

1

1

1

2

2

2

3

3

1

2

3

4

5

1

2

4

3

4

32

28

45

38

23

56

54

43

35

38


A tabela Livro representa livros. Cada livro tem um autor, representado na tabela Autor. A tabela Oferta representa os livros que são ofertados pelas livrarias, estas representadas pela tabela Livraria. NULL significa um campo não preenchido.


AutorID, LivrariaID e LivroID, respectivamente, constituem as chaves primárias das tabelas Autor, Livraria e Livro.


LivrariaID e LivroID constituem a chave primária da tabela Oferta.

Considere o seguinte código de testes na linguagem C#:


public class Multiplicador

{

----private int _resultado = 1;

----public void Multiplicar (int number)

----{

-------_resultado *= number;

----}

----public int Resultado ()

----{

-------int retorno = _resultado;

-------_resultado = 1;

-------return retorno;

----}

}


[TestClass]

public class UnitTest_Multiplicador

{

----[TestMethod]

----public void Multiplica ()

----{

-------// Arrange

-------var sut = new Multiplicador ();

-------var actual = 0;

-------var expected = 24;


-------// Act

-------sut.Multiplicar (-2);

-------actual = sut.Resultado();

-------sut.Multiplicar(3);

-------sut.Multiplicar(-4);

-------actual = sut.Resultado();


-------// Assert

-------Assert.AreEqual (expected,actual);

----}

}


Sobre o código de testes apresentado e o resultado da sua execução, é correto afirmar que:


A

o teste passa pois, ao final da execução, os valores das variáveis actual e expected são iguais;


B

o teste falha pois, como trata-se de uma multiplicação, o valor da variável actual não pode ser inicializado com zero;


C

o teste falha e, ao final da execução, o valor da variável actual é -24 e o da variável expected 24;


D

o código não compila pois a classe Multiplicador não está marcada com o atributo [TestClass];


E

o teste passa caso o valor de inicialização da variável expected seja -12 em vez de 24.