运动RNA转录失败

时间:2018-11-02 21:07:29

标签: javascript

由于某种原因,我在此练习中遇到了问题。我尝试了各种迭代,但是在此测试中仍然失败:

xtest('correctly handles invalid input', () => {
    expect(() => toRna('U')).toThrow(new Error('Invalid input DNA.'));
});

这是我的代码。如果有人能发现问题,我将永远感激不已。

const toRna = function(dna) {
  const parseDna = dna.split("");
  let rna = "";
  for (let i = 0; i < parseDna.length; i++) {
    if (parseDna[i] === "G") {
      rna += "C";
    } else if (parseDna[i] === "C") {
      rna += "G";
    } else if (parseDna[i] === "T") {
      rna += "A";
    } else if (parseDna[i] === "A") {
      rna += "U";
    } else {
      throw new Error("Invalid input DNA.");
    // This part doesn't work for some reason.
    }
  }
  return rna;
};

console.log(toRna("ACGT"));

这是它正在运行的测试类:

import { toRna } from './rna-transcription';

describe('Transcriptor', () => {
  test('correctly handles invalid input', () => {
    expect(() => toRna('U')).toThrow(new Error('Invalid input DNA.'));
  });

  test('correctly handles completely invalid input', () => {
    expect(() => toRna('XXX')).toThrow(new Error('Invalid input DNA.'));
  });

  test('correctly handles partially invalid input', () => {
    expect(() => toRna('ACGTXXXCTTAA')).toThrow(new Error('Invalid input DNA.'));
  });
});

2 个答案:

答案 0 :(得分:0)

您的代码似乎可以正常工作。

运行console.log(toRna(“ U”))时,确实会引发错误!

Error: Invalid input DNA.
    at toRna (/home/ashvitha/Desktop/dna.js:14:13)
    at Object.<anonymous> (/home/ashvitha/Desktop/dna.js:21:13)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

出问题了,您的期望似乎正在失败。不知道这是否是一个任务,但是您应该查看代码的那一部分,看看它出了什么问题!

希望这会有所帮助:)

答案 1 :(得分:0)

请确保在函数的第一行添加export,并在代码末尾删除console.log部分。

export const toRna = function(dna) {
  const parseDna = dna.split("");
  let rna = "";
  for (let i = 0; i < parseDna.length; i++) {
    if (parseDna[i] === "G") {
      rna += "C";
    } else if (parseDna[i] === "C") {
      rna += "G";
    } else if (parseDna[i] === "T") {
      rna += "A";
    } else if (parseDna[i] === "A") {
      rna += "U";
    } else {
      throw new Error("Invalid input DNA.");
    // This part doesn't work for some reason.
    }
  }
  return rna;
};

// console.log(toRna("U"));